Как добавить приложение в контекстное меню
Здравствуйте. Недавно столкнулся с задачей, часть которой состояла в добавлении сторонней (для Windows) программы в запуск через контекстное меню, с передачей ей пути к файлу.
На русскоязычных сайтах/форумах находились лишь простенькие примеры запуска блокнота через контекстное меню рабочего стола. Углубившись в этой теме я нашел решение, думаю, что стоит поделиться им.
Программа, для вызова из контекстного меню
Для тестирования была написана простейшая программа на Qt/C++. Ее суть заключается в отображении полученного аргумента (пути файла):
Работа с реестром
Ввиду того, что требовалось получение пути любого файла, использовался адрес реестра: HKEY_CLASSES_ROOT\*\shell, в случае, если нужно так же получать путь директории: HKEY_CLASSES_ROOT\Folder\shell.
В директории HKEY_CLASSES_ROOT\*\shell был создан каталог «test» (название может быть любым, его так же можно редактировать изменив значение переменной, находящейся в созданном каталоге).
В котором, в свою очередь создан подкаталог «command», данное название подкаталога является обязательным.
Для добавления сторонней программы, изменим значение переменной "(по умолчанию)" на абсолютный путь к вашей программе, в моем случае это: C:\Users\artur\Documents\build-regtest-Desktop_Qt_5_10_1_MinGW_32bit-Release\release\regtest.exe.
Для передачи пути файла в качестве параметра нужно дописать %1 к значению переменной.
В контекстном меню случайного файла был запущен, добавленный ранее, пункт «test».
Порой нам необходимо, чтобы некоторые программы были в быстром доступе — ведь это очень ускоряет работу и взаимодействие с компьютером.
Пример тому подменю "Создать" , когда мы нажимаем правой кнопкой мыши на рабочем столе. В выпадающем списке появляется множество различных функций: создать папку, ярлык, таблицу Excel или документ Word (у кого установлен Офис), текстовый документ (блокнот) и так далее:
Сегодня мы научимся добавлять любые программы в меню быстрого доступа из рабочего стола в Windows 10. Работать будем с реестром, поэтому, сразу говорю: реестр опасен, — одно неверное движение и придётся переустанавливать всю систему. Всё делаем на свой страх и риск, я ответственности не несу.
Первым делом заходим в реестр ("Win" + "R" ➡ вводим "regedit", жмём "Enter"), далее в адресной строке вводим и жмём интер (либо находим путь вручную):
Правой кнопкой мыши жмём на папку "shell" ➡ "Создать" ➡ "Раздел" (скриншот №1) ➡ далее вводим название, которое будет отображаться в контекстном меню (скриншот №2). Я назвал просто - Paint , т.к. именно это приложение мне нужно для быстрого запуска.
Теперь открываем строковый параметр (двойной щелчок по "(По умолчанию)" и вводим значение "&Paint" (скриншот №3) . При нажатии в контекстном меню той буквы, которая идёт после значка & (в данном случае это " P ") можно будет сразу открывать нужную программу.
Далее жмём правой кнопкой на свежесозданную папку "Paint" ➡ "Создать" ➡ "Раздел" ➡ называем "command" (скриншот №4).
Теперь нам нужно прописать путь к файлу, который должен открываться при нажатии на пункт в контекстном меню (по нажатию на "Paint"). Сделать это достаточно легко: открываем нужную нам программу ➡ заходим в Диспетчер задач (правой кнопкой мыши на панель задач ➡ диспетчер задач) ➡ ищем процесс с запущенным приложением ➡ правой кнопкой мыши ➡ "Открыть расположение файла" (скриншот №1).
Зажимаем "Shift" ➡ правой кнопкой на "mspaint" (если нужен Пэйнт) ➡ "Копировать как путь" (скриншот №2) . Затем возвращаемся в реестр, переходим в папку " command " ➡ открываем строковый параметр (двойной щелчок по (По умолчанию)) ➡ в поле "Значение" вставляем скопированный путь к исполняемой программе ➡ завершаем клавишей "ОК" — скриншот №3 — (в моем случае: "C:\Windows\System32\mspaint.exe").
Важно! Кавычки не убираем, оставляем так, как скопировалось.
Закрываем реестр, проверяем (скриншот №4) и радуемся — теперь мы сможем быстро открыть Paint из контекстного меню на рабочем столе Windows 10.
Чтобы работа с компьютером была удобной, в операционной системе Windows у каждого файла, папки или любого другого объекта есть контекстное меню. Открывается оно кликом правой кнопкой мышки по этому объекту.
Контекстное меню можно настраивать, добавляя и удаляя из него определенные пункты.
Об удалении пунктов читайте здесь. Ниже речь пойдет только об их добавлении в меню.
Чтобы добавить пункт в контекстное меню, необходимо внести изменения в системный реестр Windows. Сделать это можно путем "ручной" правки реестра или при помощи специальных программ (см. последний пункт этой статьи).
Первый способ немного сложный для новичков, но предоставляет более широкие возможности. В статье он рассмотрен максимально подробно. Для лучшего восприятия информация изложена в следующем порядке:
1. Как добавить простой пункт в контекстное меню файла, папки, Рабочего стола, значка "Компьютер" или Корзины;
2. Добавление в меню выпадающего списка из нескольких пунктов;
3. Как добавить пункт или выпадающий список только в меню файлов определенного типа.
1. Добавление в контекстное меню простого пункта
Для внесения изменений в системный реестр необходимо открыть Редактор реестра.
Кратко напомню, как работать в этом редакторе.
Чтобы открыть Редактор реестра нужно на клавиатуре нажать комбинацию клавиш Win+R, в открывшемся окне напечатать или скопировать туда с этой страницы слово regedit , после чего нажать клавишу Enter.
Окно Редактора реестра разделено на две части по вертикали. В левой его части находится проводник. Он предназначен для навигации. Например, чтобы открыть ветку реестра HKEY_CLASSES_ROOT/*/shell, необходимо в проводнике Редактора двойным кликом мышки открыть сначала раздел "HKEY_CLASSES_ROOT", в нем найти и таким же способом открыть раздел "*", а в нем - раздел "shell".
Подробно порядок работы в Редакторе реестра описан в этой статье.
Чтобы добавить пункт в контекстное меню файла, папки, Рабочего стола или любого другого объекта, необходимо открыть Редактор реестра и в соответствующей ветке создать новый раздел с необходимыми параметрами, в которых прописать название пункта, исполняемую им функцию и др.
Непосредственно о порядке создания этого раздела речь пойдет немного ниже. Сначала давайте разберемся, в какой именно ветке реестра его нужно создавать.
Все зависит от того, в контекстное меню какого объекта необходимо добавить пункт. Если это контекстное меню:
• файлов - радел нужно создавать в ветке:
• запоминающих устройств (диски, флешки и др.) - в ветке:
• значка "Компьютер" - в ветке:
• Рабочего стола - в ветке:
• значка "Корзина" - в ветке:
Теперь добавим новый пункт в контекстное меню одного из указанных объектов.
Например, в меню файлов добавим пункт, который будет открывать их в браузере Mozilla Firefox.
Порядок действий:
1. В Редакторе реестра открыть соответствующую ветку.
Поскольку в нашем примере пункт должен появиться в контекстном меню файлов, открываем ветку HKEY_CLASSES_ROOT/*/shell;
2. Создать в ней новый раздел.
С этой целью в проводнике Редактора необходимо щелкнуть правой кнопкой мышки по папке "shell", и в открывшемся списке выбрать "Создать" - "Раздел" (см. изображение). Назвать этот раздел можно как угодно, используя латинские буквы и цифры. Я назвал "Open to Firefox".
3. В новом разделе создать строковый параметр с названием MUIVerb (он определяет название пункта контекстного меню).
Для этого в проводнике Редактора реестра нужно щелкнуть правой кнопкой мышки по созданному разделу (который я назвал "Open to Firefox") и в появившемся списке выбрать "Создать" ⇒ "Строковый параметр" (см. изображение).
Новый строковый параметр появится в правой части Редактора реестра. Нужно присвоить ему название MUIVerb, после чего дважды щелкнуть по нему левой кнопкой мышки.
Затем в нижнем поле открывшегося окна указать словосочетание, которое будет отображаться в контекстном меню, и нажать кнопку ОК. Я написал "Открыть в Firefox" (см. изображение).
Кроме параметра MUIVerb, в созданный раздел аналогичным образом можно добавить еще несколько параметров (не обязательно). В частности:
• строковый параметр с названием Position. Он определяет, в каком месте контекстного меню будет находиться пункт. Ему можно присвоить одно из двух значений: Top (вверху) или Bottom (внизу). Если этот параметр не создавать, пункт будет отображаться в середине контекстного меню.
Я создал параметр Position и присвоил ему значение Bottom.
• строковый параметр с названием Icon. Он определяет, какая иконка будет отображаться в контекстном меню слева от пункта.
В значении этого параметра нужно указать путь к файлу иконки формата .ICO. Можно также указать путь к какой-нибудь программе. В таком случае будет использоваться иконка этой программы.
Поскольку создаваемый мною пункт должен открывать файл в браузере Firefox, я указал в нем путь к файлу этого браузера.
• строковый параметр Extended. Если добавить этот параметр в созданный раздел, пункт контекстного меню станет "скрытым". Чтобы он отображался, перед открытием контекстного меню нужно будет нажать и удерживать клавишу Shift.
Этому параметру не нужно присваивать никакого значения (оставить пустым).
В свой пример этот параметр я решил не добавлять.
4. В проводнике редактора реестра снова щелкнуть правой кнопкой мышки по созданному разделу (в моем случае он с названием "Open to Firefox") и в появившемся списке выбрать "Создать" ⇒ "Раздел".
В нашем разделе появится еще один раздел, которому необходимо присвоить название command.
5. Выделить раздел command в проводнике Редактора реестра (щелкнуть по нему мышкой). После этого в правой части Редактора дважды щелкнуть мышкой по параметру с названием "(По умолчанию)".
Затем в нижнем поле открывшегося окна, в поле "Значение", необходимо указать путь к программе, которая должна открываться создаваемым пунктом контекстного меню.
В моем случае пункт должен открывать файл в окне Firefox, поэтому я прописал путь к этому браузеру.
Важно. Через пробел от пути к программе я добавил метку "%1" (см. изображение). Она указывает на то, что пункт должен не просто запустить программу, но и открыть файл в ее окне (без этой метки пункт будет запускать пустое окно браузера).
Новый пункт контекстного меню создан. У меня он получился таким:
2. Добавление в меню
выпадающего списка из нескольких пунктов
Кроме простых пунктов, в контекстное меню можно добавлять многоуровневые выпадающие списки.
Предлагаю рассмотреть порядок их создания. В качестве примера добавим в меню файлов пункт "Открыть в браузере", из которого будет выпадать список из 5 браузеров (см. изображение).
Порядок действий:
1. В соответствующем контекстном меню создать простой пункт. При наведении на него будет появляться выпадающий список. Действовать при этом нужно так, как описано выше, за исключением п.5 (раздел command создавать не нужно).
То есть, необходимо открыть соответствующую ветку реестра, создать в ней раздел и добавить в него несколько строковых параметров:
• с названием MUIVerb, в значении которого указать название пункта (обязательно);
• с названием Position и значением Bottom или Top (не обязательно);
• с названием Icon и указанием пути к файлу иконки (не обязательно);
Поскольку мне нужно создать выпадающий список в меню файлов, я:
• открыл ветку реестра HKEY_CLASSES_ROOT/*/shell ;
• создал там новый раздел (назвать его можно как угодно, я назвал spisok) ;
• в этом новом разделе создал строковый параметр с названием MUIVerb и значением "Открыть в браузере".
Кроме того, чтобы пункт находился внизу, я создал в этом разделе строковый параметр с названием Position и значением Bottom.
2. Кроме перечисленных строковых параметров, в созданном разделе нужно создать еще один строковый параметр и назвать его SubCommands. Этот параметр превращает обычный пункт контекстного меню в выпадающий список.
После создания параметра дважды щелкнуть по нему левой кнопкой мышки и в его значении указать несколько коротких названий (любых), используя латинские буквы и цифры. Количество этих названий должно соответствовать количеству пунктов в будущем выпадающем списке. Записывать их нужно через точку с запятой, без пробелов. Использование нескольких одинаковых названий не допускается.
Поскольку выпадающий список из моего примера должен включать 5 браузеров, я придумал 5 названий: raz1, raz2, raz3, raz4, raz5. Записав их через точку с запятой, я получил следующее: raz1;raz2;raz3;raz4;raz5 (см. изображение).
3. В проводнике Редактора реестра перейти в ветку
В этой ветке для каждого пункта выпадающего списка необходимо создать новый раздел. Создаваемым разделам необходимо присвоить названия, которые были указаны в значении строкового параметра SubCommands (см. предыдущий пункт).
Как помните, в своем примере в параметре SubCommands я указал 5 названий: raz1, raz2, raz3, raz4, raz5. Этими названиями я и назвал 5 новосозданных разделов, см. изображение.
4. В каждом из новосозданных разделов необходимо сделать следующее:
• дважды щелкнуть левой кнопкой мышки по строковому параметру с названием "(По умолчанию)" и в открывшемся окне указать название пункта выпадающего меню (обязательно). В каждом из моих 5 разделов я указал здесь название браузера (raz1 - Firefox, raz2 - Opera, raz3 - Chrom, raz4 - Яндекс.Браузер, raz5 - Safari).
• в каждый из созданных разделов добавить строковый параметр с названием Icon (не обязательно) и указать в нем путь к иконке, которая должна отображаться в контекстном меню рядом с пунктом (точно так же, как и в случае с простым пунктом, см. выше);
• в каждом из созданных разделов создать еще один раздел и назвать его command. В разделе command дважды щелкнуть мышкой по параметру с названием "(По умолчанию)" и в открывшемся окне указать путь к программе, которую должен запускать пункт выпадающего списка.
В каждом из моих 5 разделов здесь я указал путь к соответствующему браузеру. И поскольку пункт должен не только запускать браузер, но и открывать файл в его окне, через пробел от пути я добавлял метку "%1", см. изображение.
Вот и все. В результате у меня получился выпадающий список из 5 браузеров (см. изображение выше).
3. Как добавить пункт
только в меню файлов определенного типа
Иногда возникает необходимость добавить пункт в контекстное меню не всех файлов, а только файлов определенного типа, например, файлов формата .txt или .jpg. Давайте разберемся, как это сделать.
Выше уже говорилось, что для добавления пунктов в контекстное меню абсолютно всех файлов нужно создать соответствующие записи в ветке реестра HKEY_CLASSES_ROOT/*/shell .
Чтобы добавить пункт только в меню файлов определенного типа, необходимо добавить те же записи в другую ветку. Что это за ветка - зависит от типа файла и установленного на компьютере программного обеспечения. На каждом конкретном компьютере она будет другой. Но ее всегда можно определить самостоятельно.
Рассмотрим, как это делается, на примере файла формата .jpg
Порядок действий:
1. В Редакторе реестра открыть раздел HKEY_CLASSES_ROOT, найти в нем папку, название которой соответствует требуемому расширению файла, и выделить ее (один раз щелкнуть по ней левой кнопкой мышки).
Учитывая, что в качестве примера был взят файл .jpg, я нашел и выделил папку с названием ".jpg".
2. В правой части Редактора реестра дважды щелкнуть мышкой по строковому параметру с названием "(По умолчанию)" и посмотреть, что указано в его значении. То, что там указано, является названием папки в разделе HKEY_CLASSES_ROOT, в которую необходимо перейти.
На моем компьютере в значении этого параметра указано "jpegfile". Значит, мне необходимо перейти в ветку HKEY_CLASSES_ROOT/jpegfile
3. Перейдя в указанную папку, необходимо найти в ней раздел с названием "shell". Если такого раздела там нет, его необходимо создать. Этот раздел и есть веткой реестра, в которую необходимо добавлять соответствующие записи для создания пункта контекстного меню.
В моем примере, это ветка HKEY_CLASSES_ROOT/jpegfile/shell
4. Программы для добавления пунктов в контекстное меню
Новые пункты в контекстное меню можно добавлять при помощи программ. Вот названия некоторых из них:
При работе на компьютере любой пользователь использует пункты контекстного меню Windows, различных элементов операционной системы, приложений и программ, установленных на компьютере. Открывается контекстное меню правой кнопкой мыши.
С помощью контекстного меню пользователь выполняет необходимые действия в программах или в операционной системе Windows: запускает приложения, копирует, вырезает или удаляет файлы, получает доступ к необходимым параметрам и функциям ОС.
При настройках по умолчанию, Windows самостоятельно добавляет необходимые пункты в контекстное меню. Установленные программы также добавляют свои пункты в контекстное меню, в зависимости от особенностей своей работы.
Пользователь может заметить, что сразу после установки операционной системы Windows на компьютер, контекстное меню не перегружено элементами. В процессе использования ПК, после установки новых программ, в контекстное меню постепенно добавляются новые пункты.
Как изменить контекстное меню
Если войти в настройки некоторых программ, то там можно добавить или убрать из контекстного некоторые пункты, относящиеся к данному приложению. Например, это можно сделать в настройках популярного архиватора WinRAR, поэтому я обычно удаляю ненужные мне лишние пункты, которые использует эта программа.
Части пользователей необходимо внести изменения в контекстное меню в операционной системе Windows. Нужно настроить контекстное меню, в зависимости от своих потребностей, например, добавить команду в контекстное меню для запуска программы, или для быстрого вызова системного средства, или для ускорения доступа к определенному параметру или инструменту.
Изменение контекстного меню можно выполнить с помощью специализированных программ, например, FileMenu Tools или Easy Context Menu. Другим методом можно редактировать контекстное меню в системном средстве — Редакторе реестра Windows.
Часто пользователям не хватает стандартных элементов меню или требуется добавление новых, предназначенных для быстрого доступа к нужным программам.
Практически вся информация, связанная с настройками контекстного меню, находится в ветви реестра «HKEY_CLASSES_ROOT», в которой в свою очередь размещены подразделы, имеющие отношения к элементам меню:
- «*» и «.» — информация обо всех типах файлов, имеющихся на компьютере.
- «AllFileSystemObjects» — все данные, относящиеся к файлам и папкам.
- «Folder» — изменения параметров контекстного меню Проводника Windows для выбранной папки.
- «Directory» — изменения параметров внутри открытой папки.
- «Directory\Background» — изменение контекстного меню внутри открытой папки, если не выделены объекты.
- «DesktopBackground» — изменение контекстного меню Рабочего стола Windows.
- «Drive» — изменение пунктов контекстного меню, касающиеся дисковой системы ПК.
- «Network» — параметры сетевого окружения.
- «Printers» — настройка контекстного меню принтеров.
Для выполнения необходимых операций нам понадобится Редактор реестра. Прочитайте статью о том, как открыть редактор реестра в операционной системе Windows разными способами.
Наиболее часто добавление необходимых параметров в контекстное меню происходит в следующих ветках реестра.
- HKEY_CLASSES_ROOT/*/shell — раздел для изменения контекстного меню файлов.
- HKEY_CLASSES_ROOT\CLSID\\shell — изменение контекстного меню значка «Этот компьютер» (Компьютер, Мой компьютер).
- HKEY_CLASSES_ROOT\CLSID\\shell — изменение контекстного меню значка «Корзина».
- HKEY_CLASSES_ROOT\Folder\shell — изменение контекстного меню папок.
- HKEY_CLASSES_ROOT\Drive\shell — изменение контекстного меню дисков.
В этой статье мы рассмотрим, как добавить пункт в контекстное меню системными средствами Windows, без использования стороннего программного обеспечения.
Перед применением изменений в системном реестре Windows, предварительно создайте копию реестра, точку восстановления системы или создайте резервную копию Windows. Благодаря этому, вы сможете вернуть рабочее состояние компьютеру, если произойдут неполадки в работе Windows, вызванные неправильными действиями пользователя.
Как добавить программу в контекстное меню Рабочего стола
Сейчас мы посмотрим, как добавить приложение или системное средство в контекстное меню Рабочего стола. Предположим, нам часто требуется запустить Панель управления, для выполнения настроек компьютера. Поэтому нам нужно добавить соответствующий пункт в контекстное меню Windows 10.
Выполните следующие действия:
- Откройте редактор реестра на компьютере.
- Пройдите по пути:
- Щелкните два раза левой кнопкой мыши по «Shell», в контекстном меню выберите сначала «Создать», а затем «Раздел».
- Задайте любое имя разделу буквами латинского алфавита, можно с цифрами. Пускай на этом примере будет «New1».
- Кликните правой кнопкой мыши по свободному месту внутри раздела, выберите «Создать» → «Строковый параметр».
- Присвойте имя параметру «MUIverb». Это обязательный параметр, который необходим для отображения имени команды в меню.
- Щелкните по параметру правой кнопкой мыши, выберите «Изменить…».
- В окне «Изменение строкового параметра», в поле «Значение:» напишите «Панель управления» или свой вариант, нажмите на кнопку «ОК».
В данном разделе можно создать несколько необязательных параметров:
- Icon — для отображения значка системного средства или программы в контекстном меню.
- Position — место расположения пункта в списке контекстного меню. Если не задать этот параметр, данная позиция окажется в центре меню. Можно задать значения «Top» (вверху) или «Botton» (внизу).
- Extended — при наличии этого параметра пункт контекстного меню отображается только при нажатой клавиши «Shift».
Если нужно, для добавления значка программы или системного инструмента создайте строковый параметр «Icon». В поле значение нужно ввести путь до исполняемого файла или путь до «dll» (динамически подключаемой библиотеки) и номер значка (ресурса).
В случае с панелью управления, можно указать «imageres.dll,22» (стандартный значок с номером ресурса), или путь до файла «control.exe». Поскольку панель управления находится в системной папке Windows, можно указать только имя файла, без полного пути. В других случаях указывайте полный путь к исполняемому файлу. Для инструментов из системных папок также можно указывать полный путь к файлу.
Если необходимо, измените позицию пункта в меню.
- В разделе «New1» создайте раздел «command».
- В разделе «command» щелкните правой кнопкой мыши по параметру «(По умолчанию)», в открывшемся меню нажмите на «Изменить…». Создание этого раздела необходимо для запуска приложения.
- В поле значение введите полный путь до исполняемого файла данного приложения, в нашем случае «C:\Windows\System32\control.exe», или просто «control.exe», потому что файл панели управления находится в системной папке Windows.
В итоге, в Редактор реестра были добавлены следующие параметры, которые отображаются на этом изображении.
Если щелкнуть правой кнопкой мыши по свободному месту на Рабочем столе, откроется контекстное меню, в которое добавлен пункт для быстрого запуска Панели управления.
Подобным способом в контекстное меню можно добавить другие программы.
Как в контекстном меню указать команду для открытия сайта в интернете
Некоторые пользователи желают иметь в контекстном меню ссылку для быстрого открытия веб-сайта. В этом случае, для запуска сайта достаточно выбрать соответствующий пункт меню, без лишних телодвижений.
Пройдите следующие шаги:
В моем случае, при использовании браузера Google Chrome это выгладит следующим образом:
В контекстном меню рабочего стола появилась ссылка для быстрого запуска сайта.
Если созданные пункты контекстного меню больше не нужны, удалите из реестра ранее созданные разделы.
- Нажмите на клавиши «Win» + «R».
- В диалоговом окне «Выполнить» введите команду «shell:sendto» (без кавычек), нажмите на кнопку «ОК».
- Откроется папка «SendTo», в которой находятся ярлыки приложений.
Выводы статьи
В случае необходимости, пользователь может добавить программу или системное средство в контекстное меню Windows для быстрого запуска приложения. Можно добавить свои пункты, предназначенные для запуска программ в контекстное меню Рабочего стола, папки, дисков и т. д.
Читайте также: