Перейти к основному содержанию

Добавить список элементов в контекстное меню Windows

Windows

Добавляем собственный список элементов в контекстное меню Windows. Я работаю в Windows 10, но инструкция подойдёт и для других версий операционной системы Windows. Естественно, не будем пользоваться сторонними утилитами, всё сделаем через Реестр Windows.

Если вы хотите добавить одиночный элемент, то вам сюда:

Добавить элемент в контекстное меню Windows

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

Контекстное меню Windows можно вызвать несколькими способами:

  • Правой кнопкой мыши.
  • Клавишей ≣ Menu на клавиатуре.
  • Сочетанием клавиш Shift + F10.

Как я уже сказал, для добавлять элементы в контекстное меню будем через Реестр Windows. Нажимаем Win + R и выполняем:

regedit

menu

Откроется редактор реестра.

menu

Выбор контекстного меню

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

Контекстное меню любого файла:

\HKEY_CLASSES_ROOT\*\shell

Контекстное меню папки:

\HKEY_CLASSES_ROOT\Folder\shell

Контекстное меню "Этот компьютер":

\HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell

Контекстное меню корзины:

\HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\shell

Контекстное меню рабочего стола:

\HKEY_CLASSES_ROOT\DesktopBackground\Shell

Контекстное меню запоминающих устройств:

\HKEY_CLASSES_ROOT\Drive\shell

Если контекстное меню нужно вызвать не для всех файлов, а для файла с определённым расширением, например, PNG, то так тоже можно сделать. В разделе \HKEY_CLASSES_ROOT находим нужное расширение ".png":

\HKEY_CLASSES_ROOT\.png

menu

Смотрим значение строкового параметра "(По умолчанию)". У меня это pngfile. Соответственно, нашей рабочей веткой будет:

\HKEY_CLASSES_ROOT\pngfile

menu

Рабочую ветку выбрали, теперь можно переходить непосредственно к созданию новых элементов контекстного меню. Я для примера выбрал контекстное меню любого файла:

\HKEY_CLASSES_ROOT\*\shell

menu

Добавить список элементов в контекстное меню

Добавляем список элементов в контекстное меню. Я добавлю новый список "Открыть в браузере". При наведении на него выпадет три пункта:

  • Google Chrome
  • Mozilla Firefox
  • Internet Explorer

Если пользователь нажмёт на пункт, то файл будет открыт в выбранном браузере.

Добавляем новый раздел в рабочую ветку реестра. Нажимаем правой кнопкой мышки по папке "shell", в открывшемся списке выбираем Создать > Раздел.

menu

Название раздела можно придумать любое. Я назвал "Открыть в браузере".

menu

В новом разделе создаём строковый параметр MUIVerb. Нажимаем правой кнопкой мышки по папке "Открыть в браузере", в открывшемся списке выбираем Создать > Строковый параметр.

menu

Указываем название параметра "MUIVerb".

menu

Присваиваем значение параметру MUIVerb, делаем по нему двойной щелчок. Указываем значение параметра. Данный текст будет отображаться в контекстном меню. Я пишу "Открыть в браузере".

menu

Есть и другие необязательные параметры, которые можно указать для элемента контекстного меню:

  • Position (строковый параметр) — можно изменить положение элемента контекстного меню. По умолчанию элемент отображается где-то в центре.
    • Top — элемент вверху.
    • Bottom — элемент внизу.
  • Icon (строковый параметр) — иконка слева от элемента контекстного меню.
    • C:\Program Files (x86)\Google\Chrome\Application\chrome.exe — можно указать путь к какой-либо программе, тогда будет отображаться иконка этой программы.
    • %SystemRoot%\\regedit.exe,0 — у программы может быть несколько иконок, можно указать порядковый номер иконки в файле, начиная с нуля
    • imageres.dll,275 — dll-файл с иконками и порядковый номер иконки в файле, начиная с нуля.
    • %SystemRoot%\\system32\\imageres.dll,82 — путь к dll-файлу с иконками и порядковый номер иконки в файле, начиная с нуля.
  • Extended (строковый параметр) — этот параметр делает элемент скрытым. Для отображения элемента нужно вызвать контекстное меню с зажатой клавишей Shift.
    • Не нужно присваивать значение, пустая строка.
  • SeparatorBefore (строковый параметр) — этот параметр добавляет разделитель выше.
    • Не нужно присваивать значение, пустая строка.
  • SeparatorAfter (строковый параметр) — этот параметр добавляет разделитель выше.
    • Не нужно присваивать значение, пустая строка.

Добавлю несколько необязательных параметров.

Создаю строковый параметр Position со значением "Top", чтобы элемент оказался вверху контекстного меню.

menu

Создаю строковый параметр Icon со значением "%SystemRoot%\System32\SHELL32.dll,135", чтобы слева от списка отобразилась выбранная мной иконка.

menu

Создаю строковый параметр SeparatorAfter, чтобы ниже списка отобразился сепаратор.

Вот что получилось:

menu

Создаём строковый параметр SubCommands. Этот параметр из обычного элемента контекстного меню делает выпадающий список. Присваиваем значение параметру SubCommands, делаем по нему двойной щелчок. В качестве значение через точку с запятой указываем (придумываем) названия будущих элементов списка. В каком порядке вы напишете значения, в таком порядке выведутся элементы в выпадающем списке. Я пишу "open_in.GC;open_in.MF;open_in.IE". Здесь перечисляются три названия будущих разделов реестра:

  • open_in.GC — раздел для Google Chrome
  • open_in.MF — раздел для Mozilla Firefox
  • open_in.IE — раздел для Internet Explorer

menu

Теперь эти три раздела нужно создать. Переходим в ветку реестра:

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

Создаём в этой ветке реестра три раздела:

  • open_in.GC
  • open_in.MF
  • open_in.IE

menu

В каждом из новых трёх разделов делаем двойной клик мышкой по параметру "(По умолчанию)". Здесь нужно указать название элемента.

  • В разделе open_in.GC пишу "Google Chrome".

  • В разделе open_in.MF пишу "Mozilla Firefox".

  • В разделе open_in.IE пишу "Internet Explorer".

menu

В каждом из новых трёх разделов создаю строковый параметр Icon (необязательный параметр), чтобы слева от элемента отобразилась иконка браузера.

  • В разделе open_in.GC создаю строковый параметр Icon со значением "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe".

  • В разделе open_in.MF создаю строковый параметр Icon со значением "C:\Program Files (x86)\Mozilla Firefox\firefox.exe".

  • В разделе open_in.IE создаю строковый параметр Icon со значением "C:\Program Files\Internet Explorer\iexplore.exe".

Если нужно указать разделители сверху или снизу:

  • CommandFlags (dword) — добавляет флаги. Шестнадцатеричное значение.
    • 20 — сепаратор ниже.
    • 40 — сепаратор выше.

Разделители мне не нужны, не указываю.

В каждом из новых трёх разделов создаём новый раздел "command".

menu

Внутри comamnd в каждом из трёх разделов делаем двойной клик мышкой по параметру "(По умолчанию)". Здесь нужно указать команду, которую нужно выполнить при выборе нашего элемента контекстного меню.

  • Для Google Chrome пишу команду:

    C:\Program Files (x86)\Google\Chrome\Application\chrome.exe "%1"

    %1 — вместо этого значения будет подставляться путь к текущему файлу.

  • Для Mozilla Firefox пишу команду:

    C:\Program Files (x86)\Mozilla Firefox\firefox.exe "%1"
    
  • Для Internet Explorer пишу команду:

    C:\Program Files\Internet Explorer\iexplore.exe "%1"

menu

Вот что получилось в разделе open_in.GC:

menu

В разделе open_in.GC, подраздел command:

menu

Вот что получилось в разделе open_in.MF:

menu

В разделе open_in.MF, подраздел command:

menu

Вот что получилось в раздел open_in.IE:

menu

В разделе open_in.IE, подраздел command:

menu

Проверяю результат. Нажимаю правой кнопкой мыши на файл. В контекстном меню сверху появляется новый список "Открыть в браузере" с выбранной мной иконкой, снизу разделитель. В списке три элемента с названиями и конками браузеров.

menu

Теги

 

Похожие материалы

Установка VMware Tools на Windows Server 2012 R2

VMware Tools - бесплатный набор утилит для улучшения взаимодействия виртуальной машины и платформы VMware. Если у вас Windows Server, то рекомендую установить VMware Tools для смены сетевой карты на vmxnet3, меньше глюков. Как показала практика, другие сетевые карты работают не очень стабильно.

Отключаем автозапуск приложения при вставке флешки или телефона

Windows 10. Случайно нажал что-то и теперь при каждом подключении телефона запускается сканер Foxit Reader. Вот, блин, бесит. Всё перерыл, наконец, нашёл, где это отключить. Заходим в панель управления:

Теги