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

Добавить элемент в контекстное меню 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". При нажатии на него указанный файл будет открыт в браузере Google Chrome.

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

menu

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

menu

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

menu

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

menu

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

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 со значением "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", чтобы слева от элемента отобразилась иконка Google Chrome.

menu

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

menu

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

menu

Указываем название раздела "command".

menu

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

menu

Мне нужно открыть файл в браузере Google Chrome. Пишу команду:

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

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

menu

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

menu

Теги

 

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

Ошибка при установке Secret Net 7 — не удаётся записать значение в раздел

При установке Secret Net 7 иногда может возникнуть ошибка вида "Не удаётся записать значение в раздел". Дальше идёт указание ветки реестра и значения, которое не удаётся записать. Ошибка наблюдалась на Windows 7 x64 (и x86), а также на Windows Server 2012 R2. Инсталлятор Secret Net 7 запускался от имени администратора. Изменение прав доступа к веткам реестра не помогло решению проблемы.

ИБП (UPS) Legrand KEOR Multiplug 800VA — выключение и включение сервера

Всем привет, сегодня у нас в руках ИБП Legrand KEOR Multiplug 800VA. Скажете, зачем он нам нужен? Всё просто, я надеюсь, что этот UPS сможет поддерживать работу отдельно стоящего сервера. Сервер стоит в помещении, где часто отключают электричество. 

ИБП (UPS) APC Back-UPS Pro BR1500G-RS — выключение и включение сервера

Вашему вниманию предлагается небольшой обзор ИБП APC Back-UPS Pro BR1500G-RS. По задумке этот UPS сможет поддерживать работу отдельно стоящего сервера. При отключении электричества сервер должен выключиться. При включении электричества сервер должен включиться.