Добавляем собственный элемент в контекстное меню Windows. Я работаю в Windows 10, но инструкция подойдёт и для других версий операционной системы Windows. Естественно, не будем пользоваться сторонними утилитами, всё сделаем через Реестр Windows.
Если вы хотите добавить список элементов, то вам сюда:
Добавить список элементов в контекстное меню Windows
Контекстное меню — элемент графического интерфейса операционной системы, представляющий собой список команд, вызываемый пользователем для выбора необходимого действия над выбранным объектом.
Контекстное меню Windows можно вызвать несколькими способами:
- Правой кнопкой мыши.
- Клавишей ≣ Menu на клавиатуре.
- Сочетанием клавиш Shift + F10.
Как я уже сказал, для добавлять элементы в контекстное меню будем через Реестр Windows. Нажимаем Win + R и выполняем:
regedit
Откроется редактор реестра.
Выбор контекстного меню
Контекстное меню корзины отличается от контекстного меню файла. Поэтому сначала следует определиться, в какое контекстное меню будем добавлять элемент. В зависимости от этого, выберем для работы ветку реестра.
Контекстное меню любого файла:
\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
Смотрим значение строкового параметра "(По умолчанию)". У меня это pngfile. Соответственно, нашей рабочей веткой будет:
\HKEY_CLASSES_ROOT\pngfile
Рабочую ветку выбрали, теперь можно переходить непосредственно к созданию новых элементов контекстного меню. Я для примера выбрал контекстное меню любого файла:
\HKEY_CLASSES_ROOT\*\shell
Добавить элемент в контекстное меню
Добавляем новый элемент в контекстное меню. Я добавлю новый элемент "Открыть в Google Chrome". При нажатии на него указанный файл будет открыт в браузере Google Chrome.
Добавляем новый раздел в рабочую ветку реестра. Нажимаем правой кнопкой мышки по папке "shell", в открывшемся списке выбираем Создать > Раздел.
Название раздела можно придумать любое. Я назвал "Открыть в Google Chrome".
В новом разделе создаём строковый параметр MUIVerb. Нажимаем правой кнопкой мышки по папке "Открыть в Google Chrome", в открывшемся списке выбираем Создать > Строковый параметр.
Указываем название параметра "MUIVerb".
Присваиваем значение параметру MUIVerb, делаем по нему двойной щелчок. Указываем значение параметра. Данный текст будет отображаться в контекстном меню. Я пишу "Открыть в Google Chrome".
Есть и другие необязательные параметры, которые можно указать для элемента контекстного меню:
- 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", чтобы элемент оказался вверху контекстного меню.
Создаю строковый параметр Icon со значением "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", чтобы слева от элемента отобразилась иконка Google Chrome.
Вот что получилось:
Двигаемся дальше. Внутри раздела "Открыть в Google Chrome" создаём новый раздел. Нажимаем правой кнопкой мышки по папке "Открыть в Google Chrome", в открывшемся списке выбираем Создать > Раздел.
Указываем название раздела "command".
В новом разделе command меняем значение по умолчанию. Двойной клик мышкой по параметру "(По умолчанию)". Здесь нужно указать команду, которую нужно выполнить при выборе нашего элемента контекстного меню.
Мне нужно открыть файл в браузере Google Chrome. Пишу команду:
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe "%1"
%1 — вместо этого значения будет подставляться путь к текущему файлу.
Проверяю результат. Нажимаю правой кнопкой мыши на файл. Верхний элемент — "Открыть в Google Chrome" с иконкой. При клике файл открывается в браузере.