Как добавить любую команду из Ribbon-ленты Проводника в его контекстное меню

Я бы хотел иметь постоянный доступ к некоторым командам ленты Проводника через контекстное меню (например, к той же команде "Копировать путь", и не жать при этом SHIFT). В Windows 8 заложены все необходимые механизмы добавления этих команд в контекстное меню.

CopyPathLogoВ Windows 8 Microsoft добавила ленточный интерфейс в программу Проводник, и теперь все его многочисленные команды,  скрывавшиеся в главном и контекстном меню, всегда на виду и выглядят привлекательно. Это ещё и чертовски удобное новшество, одно из немногих, способных для меня скрасить пребывание в этой наивно квадратной и плоской ОС.

Однако, ленты Проводника нет на рабочем столе, нет в некоторых системных папках, и нет в альтернативных файловых менеджерах. Я бы хотел иметь постоянный доступ к некоторым командам через контекстное меню (например, к той же команде "Копировать путь", и не жать при этом SHIFT, или что-то ещё). Эта функция позволит мне сократить время на выполнение привычных задач, и избавит от необходимости помнить, на какой вкладке ленты Проводника находится нужная мне команда (или как частный случай - избавит от необходимости запускать Проводник для выполнения этой команды). К счастью, в Windows 8 заложены все необходимые для этого механизмы, и это ещё один плюс ей в карму. Давайте посмотрим, как ими можно воспользоваться.

Если лента в Проводнике вам в принципе претит, то вы не из моей песочницы можете её отключить при помощи утилиты Ribbon Disabler for Windows 8.

В Windows 8 все команды, отображаемые на ленте, описаны в реестре в разделе "CommandStore". Вот здесь:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell

Традиционный совет: Переход в нужный раздел реестра одним щелчком мыши

Здесь вы увидите множество подразделов, каждый из которых соответствует команде Проводника. Многие из них отображаются на ленте.

А вот Windows 7 и Windows Vista использовали этот ключ для команд тулбара, на смену которому пришел ленточный интерфейс. Описанные там команды можно было добавлять на тулбар Проводника. Именно этот трюк использует программа Explorer Toolbar Editor.

Чтобы добавить команду в контекстное меню, вам необходимо выполнить следующее.

  1.  Предположим, вы уже перешли в раздел ...\CommandStore\shell. Найдите здесь подраздел с командой, которую вы хотите добавить в контекстное меню. Для примера я буду добавлять пресловутую команду "Копировать путь". Подраздел для этой команды выглядит как ...\CommandStore\shell\Windows.copyaspath.
  2. Щелкните по этому подразделу правой кнопкой мыши и выберите "Экспортировать". Задайте любое имя файла и экспортируйте в него подраздел -  мы этот файл будем редактировать чуть позднее.
  3. Теперь вам необходимо решить, добавить ли команду ко всем файлам, либо же к конкретному типу файлов - нам потребуется узнать путь к подразделу идентификатора файла в корневом разделе HKEY_CLASSES_ROOT. Я уже писал про подразделы идентификатора файла, прочитайте статью, если вы затрудняетесь найти нужный вам тип файла в реестре. Свою команду "Копировать путь" я буду добавлять ко всем файлам и папкам, поэтому мне понадобится раздел HKCR\*.
  4. Теперь откроем в блокноте файл, который мы получили на шаге 2. Он выглядит вот так:
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Windows.copyaspath]
    
    "VerbName"="copyaspath"
    "CommandStateSync"=""
    "InvokeCommandOnSelection"=dword:00000001
    "MUIVerb"="@shell32.dll,-30329"
    "VerbHandler"="{f3d06e7c-1e45-4a26-847e-f9fcdee59be0}"
    "Description"="@shell32.dll,-30336"
    "CanonicalName"="{707C7BC6-685A-4A4D-A275-3966A5A3EFAA}"
    "CommandStateHandler"="{3B1599F9-E00A-4BBF-AD3E-B3F99FA87779}"
    "Icon"="imageres.dll,-5302"
  5. Обратите внимание на строчку, которую я выделил жирным. Всё, что необходимо сейчас сделать, это заменить её на  HKCR\*\shell (или на путь в разделе HKCR к типу файлов, который нужен именно вам). После редактирования файл должен выглядеть вот так(изменения отмечены жирным шрифтом):
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\*\shell\Windows.copyaspath]
    
    "VerbName"="copyaspath"
    "CommandStateSync"=""
    "InvokeCommandOnSelection"=dword:00000001
    "MUIVerb"="@shell32.dll,-30329"
    "VerbHandler"="{f3d06e7c-1e45-4a26-847e-f9fcdee59be0}"
    "Description"="@shell32.dll,-30336"
    "CanonicalName"="{707C7BC6-685A-4A4D-A275-3966A5A3EFAA}"
    "CommandStateHandler"="{3B1599F9-E00A-4BBF-AD3E-B3F99FA87779}"
    "Icon"="imageres.dll,-5302"
  6. Сохраните файл, и дважды щёлкните по нему, чтобы добавить изменения в реестр. Получится вот так:Registry

Вот и всё. Теперь команда "Копировать путь" мне доступна отовсюду посредством контекстного меню:

CopyPath

В комментариях вы можете рассказать, находите ли вы полезной идею поместить одну или несколько команды ленты Проводника в его контекстное меню, и считаете ли вы ленту удачным новшеством Windows 8.

Как добавить любую команду из Ribbon-ленты Проводника в его контекстное меню: 24 комментария

  1. Благодарю Сергей, нужнейший твик!
    А не думал написать менеджер контекстного меню? Чтобы туда добавлять разные кнопочки из ленты или «Стать владельцем»:)

    1. «Стать владельцем» давно написано: TakeOwnershipEx. Остальное — буду писать.

  2. А вы будете реализовывать утилиту по этой статье?
    Хочу попрактиковаться сам =)

    1. Рад, что статья не вызвала негатива 🙂

      1. …статья, наверняка, вызвала куда больше позитива, когда бы уважаемый автор уточнил, что если нужный раздел имеет подраздел ,,command,, — его тоже надо редактировать в блокноте…

          1. …ни в коем разе… только позитив, за что — спасибо!!! … просто хотел дополнить момент…

  3. К слову, отключить риббон можно еще одним способом, убив при этом второго зайца — утилитой Clover 2, добавляющей одну из самых нехватающих, имхо, вещей в проводнике — табы.

    Выглядит это приблизительно так. К сожалению, опции сделать табы и оставить риббон у этой утилиты пока нет.

  4. Кстате Сергей, если не сложно можешь поправить интеграцию DropBox с контекстным меню, у меня под восьмёркой в папке дропбокса на файлах нету контестного меню в котором можно было выбирать быстро ссылку на файл, а в семёрке было..
    http://5.firepic.org/5/images/2013-03/19/siz0zw16pjcf.jpg

    1. Пользуюсь собственным сервером. Однако посмотрю сегодня, что можно сделать с дропбоксом.

  5. Команда «Копировать путь» не самый удачный пример, ибо она доступна в меню по умолчанию начиная с Windows 7, для этого только перед кликом правой клавишей мыши надо зажать Shift 😉

    1. Не читать мои аргументы вообще дурной тон 🙂


  6. Здравствуйте Сергей, подскажите, можно ли добавить такую функцию не в браузер, а на сам пк, чтоб можно было искать прямо из текстовых редакторов, и поиск по фотографиям?
    Заранее благодарю!

    1. Без сторонних средств получить в винде выделенный текст нельзя.
      Можете поставить Punto Switcher, и он будет искать текст при нажатии клавиш Win + S
      Или любую другую программу, которая предоставляет такой функционал.
      Средствами системы сделать подобное просто нельзя.

      1. не то что бы я не поддерживал отечественное производство, но…

        В любом случае благодарю!

        1. Увы. Можно поставить какую-нибудь годную альтернативу. Я очень любил WireKeys в своё время.

  7. Подскажите пожалуйста, есть ли команда (возможность добавить в контекстное меню)
    — создание копии в эту же папку (‘CTRL + C‘ + ‘CTRL + V‘);
    — создание такого же файла только с окончанием ‘.backup

    1. Команды нет.
      Можно прикрутить командный файл, но это будет не совсем элегантное решение.

Обсуждение закрыто.