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

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

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.

Winreview.ru можно найти в Вконтакте, Facebook и Twitter. Присоединяйтесь!

Комментарии

  1. Игорь

    Благодарю Сергей, нужнейший твик!

    А не думал написать менеджер контекстного меню? Чтобы туда добавлять разные кнопочки из ленты или "Стать владельцем")

  2. Vlad

    А вы будете реализовывать утилиту по этой статье?

    Хочу попрактиковаться сам =)

  3. Vlad

    И большой поклон за статью!

  4. Владимир

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

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

  5. Сергей Ткаченко

    @Vlad
    Уже пишу

  6. Сергей Ткаченко

    @Игорь
    "Стать владельцем" давно написано TakeOwnershipEx. Остальное - буду писать.

  7. Сергей Ткаченко

    @Владимир
    Выглядит как Google Chrome )

  8. Сергей Ткаченко

    @Vlad
    Рад, что статья не вызвала негатива )

  9. Игорь

    Кстате Сергей, если не сложно можешь поправить интеграцию DropBox с контекстным меню, у меня под восьмёркой в папке дропбокса на файлах нету контестного меню в котором можно было выбирать быстро ссылку на файл, а в семёрке было..

    http//5.firepic.org/5/images/2013-03/19/siz0zw16pjcf.jpg

  10. VAD

    Статья интересная и полезная, спасибо!

  11. Сергей Ткаченко

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

  12. AndrewTishkin

    Команда "Копировать путь" не самый удачный пример, ибо она доступна в меню по умолчанию начиная с Windows 7, для этого только перед кликом правой клавишей мыши надо зажать Shift ;-)

  13. Сергей Ткаченко

    @AndrewTishkin
    Не читать мои аргументы вообще дурной тон )

  14. ololoev

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

    Заранее благодарю!

  15. Сергей Ткаченко

    @ololoev
    Без сторонних средств получить в винде выделенный текст нельзя.

    Можете поставить Punto Switcher, и он будет искать текст при нажатии клавиш Win + S

    Или любую другую программу, которая предоставляет такой функционал.

    Средствами системы сделать подобное просто нельзя.

  16. ololoev

    @Сергей Ткаченко
    не то что бы я не поддерживал отечественное производство, но...

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

  17. Сергей Ткаченко

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

  18. dmitriy1570

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

  19. Сергей Ткаченко

    @dmitriy1570
    А так она вызвала негатив?

  20. dmitriy1570

    @Сергей Ткаченко
    ...ни в коем разе... только позитив, за что - спасибо!!! ... просто хотел дополнить момент...

  21. Сергей Ткаченко

    @dmitriy1570
    Я успел испугаться )

  22. Фернандо

    Подскажите пожалуйста, есть ли команда (возможность добавить в контекстное меню)

    - создание копии в эту же папку ('CTRL + C' + 'CTRL + V');

    - создание такого же файла только с окончанием '.backup'

  23. Сергей Ткаченко

    @Фернандо
    Команды нет.

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

Написать комментарий