В контекстных меню рабочего стола и компьютера очень удобно иметь различные программы и инструменты для быстрого доступа. Проблема лишь в том, что по мере добавления новых пунктов в меню, оно разрастается, и ориентироваться в нем становится все труднее.
В этой статье я расскажу, как создать в контекстных меню раскрывающиеся (каскадные) меню, которые будут содержать собственные наборы программ и административных средств.
Каждый пункт меню будет снабжен значком, чтобы можно было легко найти нужное приложение.
На этой странице:
- Обзор
- Регистрация команд в реестре
- Создание раскрывающегося меню и добавление в него пунктов
- Создание раскрывающегося меню с несколькими уровнями вложенности
- Упорядочивание пунктов контекстного меню рабочего стола и компьютера
- Готовые наборы раскрывающихся меню
Обзор
Для работы раскрывающегося меню нужны две составляющих:
- команды, которые выполняются при щелчке по пункту меню
- меню, раскрывающее список пунктов
Сначала я расскажу, как зарегистрировать в реестре собственные команды. По сравнению со способом добавления отдельных пунктов меню, о котором я рассказывал здесь, такой подход имеет два преимущества:
- Единожды зарегистрировав команду, ее можно вызывать из любого меню, если их несколько.
- Управление пунктами меню значительно упрощается.
Следуя простым пошаговым инструкциям, через 10 минут вы создадите собственное раскрывающееся меню, которое показано на рисунке ниже.
В конце статьи вы также найдете готовые наборы раскрывающихся меню.
Регистрация команд в реестре
Сначала мы зарегистрируем команды, которые будут выполняться при щелчке по пункту меню. Откройте редактор реестра и приступим!
- Перейдите в раздел
- В этом разделе создайте подразделы для каждой программы или команды, которую вы хотите видеть в меню. Названия подразделов могут быть любыми, но обязательно латинскими и без пробелов. В моем примере создается три подраздела:
- regedit
- taskmgr
- devmgmt
- В каждом из созданных подразделов дважды щелкните параметр (По умолчанию) и в качестве значения задайте имя ярлыка, которое вы хотите видеть в меню. Например, для подраздела regedit я задал имя Редактор реестра.
- Если вы хотите, чтобы рядом с названием отображался значок, создайте там же строковый параметр Icon и в качестве значения укажите исполняемый файл или библиотеку с номером ресурса. Я указал regedit.exe, чтобы использовать стандартный значок редактора реестра.
- Теперь задайте команду для пункта меню. В каждом разделе, который вы создали на шаге 2, создайте подраздел с именем command. Затем дважды щелкните параметр (По умолчанию) и в качестве значения укажите путь к программе. Например, для редактора реестра я указал regedit.exe (полный путь не нужен, поскольку исполняемый файл находится в системной папке).
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell
В реестре должна получиться такая картина:
Создание раскрывающегося меню и добавление в него пунктов
Теперь нужно в реестре создать меню и добавить в него пункты, которые будут служить для вызова команд.
- В зависимости от того, где вы хотите создать раскрывающееся меню, выберите раздел.
- для меню «Компьютер» перейдите в раздел:
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell
- для меню рабочего стола перейдите в раздел:
HKEY_CLASSES_ROOT\DesktopBackground\Shell
- для меню «Компьютер» перейдите в раздел:
- Щелкните правой кнопкой мыши по разделу shell и выберите пункт Создать – Новый раздел. Имя для раздела можно выбрать любое, но оно обязательно должно быть латинское. Назовите его, например, Menu1. В этом разделе будут созданы следующие строковые параметры.
- Параметр MUIVerb (обязательно) отвечает за название раскрывающегося меню, поэтому значение можете выбирать любое. Я назвал свое Система.
- Параметр SubCommands (обязательно) содержит список указателей для команд, которые будут выполняться из меню. Названия указателей должны соответствовать названиям подразделов реестра, которые вы создали на шаге 2 в предыдущем разделе статьи. Разделяйте указатели точкой с запятой (;) и перечисляйте их в том порядке, в котором вы хотите видеть пункты в меню. Чтобы вам было проще понять, я приведу свой список:
- Параметр Icon (необязательно) задает значок для раскрывающегося меню. Можно задать путь к библиотеке (dll) и номер ресурса (значка), либо полный путь к исполняемому файлу (если он в системной папке, достаточно указать только имя). Для своего меню «Система» я задал значок imageres.dll,104 (сначала начала имя файла, а через запятую – номер ресурса).
- Параметр Position (необязательно) отвечает за расположение раскрывающегося меню в контекстном меню. Вы можете задать ему значение Top (вверху) или Bottom (внизу). Если значение не задавать, раскрывающееся меню окажется в середине контекстного меню. Я расположил свое меню внизу.
- Параметр Extended (необязательно) отвечает за отображение пункта в меню. Когда параметр присутствует, чтобы увидеть созданный пункт, нужно вызывать контекстное меню, удерживая нажатой клавишей SHIFT. Этому параметру не требуются значения.
regedit;taskmgr;devmgmt
Таким образом, у меня в меню будут редактор реестра, диспетчер задач и диспетчер устройств.
Если вы хотите создать два меню, создайте раздел Menu2 и повторите шаги 3 – 7. Таких меню можно сделать сколько угодно.
Давайте посмотрим, что получилось в реестре.
Кстати, уже все готово! В контекстном меню компьютера появилось раскрывающееся меню «Система» со списком пунктов.
Если вы запутались или у вас что-то не получается, удалите созданные разделы и параметры, а затем импортируйте приведенный ниже REG-файл (он добавляет раскрывающееся меню в контекстное меню компьютера).
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Menu1] "MUIVerb"="Система" "SubCommands"="regedit;taskmgr;devmgr" "Icon"="imageres.dll,104" "Position"="Bottom" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit] @="Редактор реестра" "Icon"="regedit.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit\command] @="regedit.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\taskmgr] @="Диспетчер задач" "Icon"="taskmgr.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\taskmgr\command] @="taskmgr.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\devmgr] @="Диспетчер устройств" "Icon"="devmgr.dll,4" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\devmgr\command] @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,6d,00,\ 63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,73,00,20,00,25,00,53,00,79,00,73,\ 00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,\ 74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,65,00,76,00,6d,00,67,00,6d,00,74,\ 00,2e,00,6d,00,73,00,63,00,00,00
Теперь вы можете увидеть, какая структура должна быть в реестре.
Создание раскрывающегося меню с несколькими уровнями вложенности
Выше я продемонстрировал, как создать раскрывающееся меню со списком пунктов. Эти пункты тоже можно сделать раскрывающимися, т.е. возможно создание вложенных меню, как показано на рисунке ниже.
Как видите, в меню есть пункт «Диск», который в свою очередь раскрывает меню с утилитами для обслуживания диска. Он отделен от остальных пунктов разделителем, хотя это не очень хорошо видно на рисунке, поскольку пункт выделен. Дальше я расскажу, как создать такое меню на основе уже изложенного выше материала.
- В разделе реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell
создайте ярлыки для двух новых пунктов (Дефрагментация диска и Очистка диска), следуя инструкциям в разделе статьи «Регистрация команд в реестре». Я назвал подразделы defrag и cleanmgr.
- В том же разделе реестра создайте подраздел disk-menu (название может быть любым). Дальше все будет очень похоже на то, что вы проходили в первом разделе статьи.
- В подразделе disk-menu создайте строковые параметры:
- MUIVerb для названия меню, например, со значением Диск
- Icon для значка меню, например со значением imageres.dll,31
- SubCommands для ярлыков этого меню (в данном случае со значением defrag;cleanmgr)
- Если вы хотите использовать разделитель, создайте параметр REG_DWORD с именем CommandFlags и шестнадцатеричным значением:
- 20 для размещения разделителя над пунктом меню
- 40 для размещения разделителя под пунктом меню
Я задал значение 40, поскольку планирую сделать меню первым пунктом и отделить его от остальных.
В реестре должна получиться такая картина:
Вложенное меню готово, и осталось лишь указать на него ссылку в родительском меню, как было описано в разделе статьи «Создание раскрывающегося меню и добавление в него пунктов». Следуя моему примеру, в разделе
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Menu1
параметр SubCommands должен принять следующий вид:
disk-menu;regedit;taskmgr;devmgmt
Таким образом, раскрывающееся меню будет содержать вложенное меню disk-menu (Диск) первым пунктом, а также три отдельных пункта: Редактор реестра, Диспетчер задач и Диспетчер устройств.
Если вы запутались или у вас что-то не получается, удалите созданные разделы и параметры, а затем импортируйте приведенный ниже REG-файл.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Menu1] "MUIVerb"="Система" "SubCommands"="disk-menu;regedit;taskmgr;devmgr" "Icon"="imageres.dll,104" "Position"="Bottom" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit] @="Редактор реестра" "Icon"="regedit.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit\command] @="regedit.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\taskmgr] @="Диспетчер задач" "Icon"="taskmgr.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\taskmgr\command] @="taskmgr.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\devmgr] @="Диспетчер устройств" "Icon"="devmgr.dll,4" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\devmgr\command] @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,6d,00,\ 63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,73,00,20,00,25,00,53,00,79,00,73,\ 00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,\ 74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,65,00,76,00,6d,00,67,00,6d,00,74,\ 00,2e,00,6d,00,73,00,63,00,00,00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\cleanmgr] @="Очистка диска" "Icon"="cleanmgr.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\cleanmgr\command] @="cleanmgr.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\defrag] @="Дефрагментация диска" "Icon"="dfrgui.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\defrag\command] @="dfrgui.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\disk-menu] "MUIVerb"="Диск" "Icon"="imageres.dll,31" "CommandFlags"=dword:00000040 "SubCommands"="defrag;cleanmgr"
Более глубокий уровень вложенности достигается аналогичным образом. В параметре SubCommands для вложенного меню указывается ссылка на команду в разделе CommandStore, содержащую параметры следующего уровня вложенности.
Упорядочивание пунктов контекстного меню рабочего стола и компьютера
Если вы добавите в контекстное меню рабочего стола или компьютера несколько отдельных пунктов и/или раскрывающихся меню, то, возможно, у вас возникнет идея расположить их в определенном порядке. Выше я рассказывал, как задать расположение пункта в меню с помощью параметра Position. Но он влияет на позицию вашего пункта относительно стандартных (встроенных) пунктов контекстного меню, т.е. позволяет поместить пункт под ними, над ними или где-то в середине меню. Я также рассказывал, что порядок отдельных пунктов раскрывающегося меню можно задать с помощью параметра SubCommands, перечислив их там в желаемом порядке. Можно сортировать пункты раскрывающихся меню, и я покажу, как это сделать двумя различными способами.
Перечисление пунктов меню в параметре реестра
На примере меню рабочего стола я разберу самый сложный случай сортировки, внизу меню, где помимо своих пунктов играют роль встроенные. В меню рабочего стола у меня созданы три меню (Система, Администрирование и Стандартные программы).
У всех них задано одинаковое расположение внизу контекстного меню с помощью параметра Position.
Примечание. В меню рабочего стола упорядочивание работает только внизу (Position=Bottom) и в середине (Position отсутствует).
Однако мои меню перемежаются со стандартными пунктами (Разрешение экрана, Гаджеты и Персонализация), что не очень удобно. Это происходит потому, что пункты выстраиваются в алфавитном порядке соответствующих им подразделов реестра.
Чтобы изменить порядок меню, нужно прописать его в качестве значения для параметра (По умолчанию) в разделе
HKEY_CLASSES_ROOT\DesktopBackground\Shell
Дважды щелкните параметр (По умолчанию) и введите названия разделов меню в реестре в желаемом порядке через запятую:
Display,Gadgets,Personalize,WinApps,Admin,System
Если вы хотите убрать стандартные пункты из меню, придется удалить соответствующие им разделы, но я не рекомендую этого делать, конечно.
Алфавитный порядок разделов реестра, соответствующих пунктам меню
Описанным выше способом можно изменить порядок отдельных пунктов и раскрывающихся меню в контекстном меню компьютера. С той лишь разницей, что параметр (По умолчанию) изменяется в разделе
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell
Однако при этом в меню компьютера стандартный пункт Открыть смещается вниз и не выделяется жирным, поскольку нарушается встроенный в систему порядок пунктов меню.
Если вас это не устраивает, просто удалите параметр (По умолчанию). Он будет восстановлен без значения, и пункт Открыть вернется на свое место.
Можно отсортировать пункты иначе, используя алфавитный порядок названий разделов собственных меню. Достаточно начать названия, например, с последней буквы латинского алфавита (z) и цифры, определяющей порядок пункта.
В принципе, этот же способ можно использовать и для сортировки меню рабочего стола.
Готовые наборы раскрывающихся меню
Я подготовил наборы REG-файлов, с помощью которых вы сможете создать любое из трех раскрывающихся меню (или все сразу) в контекстных меню рабочего стола и компьютера. Раскрывающиеся меню имеют один уровень вложенности.
Для управления меню используется оболочка BS Post Installer.
Вы можете:
- создать раскрывающиеся меню в контекстном меню рабочего стола или компьютера
- выбрать, где будет располагаться каждое раскрывающееся меню: вверху, внизу или посередине контекстного меню.
- удалить любое меню, если оно вас чем-то не устроит
Скачать наборы меню (примечание для владельцев 64-разрядных систем)
Я также создал архив с REG-файлами, которые использовались в статье в качестве образцов, включая и дополнительный уровень вложенности.
Сергей
Как найти библиотеки к иконкам, чтоб отоброжались,
например к службе и установка и удаление программ
Спасибо.
Vadim Sterkin
Сергей, проще всего так.
Антон
Почему-то после нескольких перезагрузок пропадают раскрывающиеся меню, в чем может быть проблема? windows 7 x 64
Анатолий
Я подготовил наборы REG-файлы, где они?
Vadim Sterkin
Анатолий, ищущий да обрящет… читайте мои записи до конца.
Александр
Добрый день! Подскажите пожалуйста, как добавить в контекстное меню пунк «программы и компаненты». Сколько не искал нет ничего.
Vadim Sterkin
Александр, в общем случае:
control /name Canonical Name
В вашем случае
Александр
Vadim Sterkin, спасибо, я пока ждал ответ уже сделал через control appwiz.cpl. теперь мучаюсь с командой Выполнить в контекстное меню)
Vadim Sterkin
Александр, команда «Выполнить» есть в разделе Администрирование в наборах, предлагаемых к загрузке. И кстати, в них же есть «Программы и компоненты», как я вижу.
Антолий
Вадим, спасибо, принцип понятен у Вас, что страничка то шедевр.
Вячеслав
Вопрос автору. А как организовать вложенные пункты в «Отправить» (sendto). (пример: Отправить —> Папка1 —> место_назначение1, где Папка1 это категория отправления, а место_назначения1 — это ярлык папку или файл)
Возможно ли это сделать через вами описанный способ? Если да то как
Vadim Sterkin
Вячеслав, я понятия не имею, как реализовать вашу хотелку. Честно говоря, второй уровень вложенности лишь затрудняет навигацию. Неужели у вас столько мест назначения, что они не поместятся в один уровень?
Руслан
Добрый вечер, хочелось-бы узнать возможно ли в кон.меню добавить пункт поиска в интернете. Например выделил файл (либо часть имени файла)-и искать его через яндекс и тд (поисковик по умолчанию) в опять-же браузере по умолчанию (Opera)
Vadim Sterkin
Руслан, целиком имя файла — не исключаю, но без скрипта вам все равно не обойтись. Примеры скриптов работы с выделенным файлом есть в этой записи. За помощью в решении вашей задачи обращайтесь в форум скриптов на OSZone :)
Александр
помогите !
не могу создать ОТКРЫВАВШИЕСЯ МЕНЮ на рабочем столе !
помогите кто нибудь, создайте .reg файл ПЛЗ
Vadim Sterkin
Александр, готовые файлы есть в статье — откройте глаза.
P.S. Возьмите отвертку и выломайте клавишу Caps Lock.
Александр
Vadim Sterkin,
просто браузер логанул и не было виднО !
уже давно нашол !
спс !
Дмитрий
Вадим, а не подскажите как удалить/ перегруппировать пункты Вид, Сортировка, Обновить в меню рабочего стола?
Хотелось бы вид и сортировку запихнуть куда-нибудь вниз, а сверху оставить только пункт «Обновить».
В DesktopBackground \ Shell их нет, подозреваю что они в виде CLSID болтаются где-то в другом месте, но как искать эти «шифры» я не знаю.
Vadim Sterkin
Дмитрий, я не знаю. Эти пункты ж не только на рабочем столе, но и в фоне папки появляются…
Anzor
Подскажите, можно ли сделать так..чтобы строка отправить не копировала файл в нужно мне место, а вырезала ?
Vadim Sterkin
Анзор, а вы сначала вырезайте, потом отправляйте.
Anzor
Vadim Sterkin,
Попробовал как вы сказали, получается то же самое.
Файл копируется просто, в нужное место… и остается.
Vadim Sterkin
Анзор, между тем, решение есть в конце записи Маленькие хитрости контекстного меню «Отправить» (Send To) :)
Anzor
Vadim Sterkin,
Спасибо! очень помог)
ruslan
Здравствуйте, я бы хотел создать свой раздел в реестре анологичный тому что в самой windows 7 (открыть с помощью) и там выпадает список программ, я бы хотел создать свой список программ, чтобы эти программы были там всегда, а независили от того какая программа открыта. Где и в каком разделе создавать я уже знаю, но не знаю список команд чтобы их прописать там. Ну вот мне нужно к примеру чтобы было примерно так: Сам текст: открыть в , ну и выпадал следующий список: блокнот, akel pad, power point, просмотр фотографий windows (стандартный), paint. Ну а вообще было бы здорово если бы дали полный список команд.
Vadim Sterkin
Думаю, что дублирование вопросов в комментариях блога и в почте — плохая идея…
Александр_1988
Вадим, скажите пожалуйста когда выйдет в свет BS Post Installer-x86 ? И выйдет ли вообще?Очень нужно ваше чудо , но в 32-ух битной версии.
Vadim Sterkin
Александр,
1. x86 и 32-разрядная — это одно и то же.
2. Предлагаемую тут программу можно использовать и в 64-разрядной ОС, причем описан способ.
3. Вопрос нужно адресовать автору программы.
Геннадий
Уважаемый, Вадим!
Не подскажете, как можно в раскрывающееся меню «Администрирование» добавить 14-й подпункт «Управление компьютером».
Спасибо.
Vadim Sterkin
Команду mmc compmgmt.msc добавьте просто.
Геннадий
Спасибо, действительно ПРОСТО!
Кирилл
Вадим ,здравствуйте!
такая проблема:
пункты раскрывающегося меню не появляются,составил твики четыре пункта появились-остальные-нет.
чушь какая то,не поиму в чем проблема….
вот код созанного меню:
первый пункт(avz )не появляется,следующие четыре есть,остальные не появляются.
Хм…сейчас пробовал полностью удалить все твики,заново создал и появился только шаблон mbam.
Что же это за колдовство такое?
может есть какие то ограничения?
Кирилл
Дмитрий,
действительн в clsid,но насколько я помню удалением его меню ваш вопрос не решится,и вам пидется поиграться с правами доступа к разделам.
Кирилл
Ну все,вопрос решил,пришлось вдоволь поковырять реестр,но теперь мое контексное меню и реестр подчинены мне и властелин компа….
Oleg
Вадим, спасибо за статью, для меня оказалась полезной. Возник только один вопрос. После чистки реестра программой (Auslogics Boost Speed) всё пропадает. Посмотрел подробнее, в качестве ошибки реестра указывает:
Ассоциации файлов HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\Menu1
Неверная запись в контекстном меню.
Как это можно исправить?
Vadim Sterkin
Олег, исправить это легко — не чистить реестр указанной программой :)
Oleg
Vadim Sterkin,
Понятно) Спасибо)
Philip
Подскажите, как добавить иконку для пункта devmgmt? Просто указывая адрес «C:\Windows\System32\devmgmt.msc» ничего не получается. А в библиотеках «shell32.dll» и «imageres.dll» я эту иконку что-то не нахожу. Этот пункт в меню срабатывает, но вот вместо иконки листик для файла неизвестного формата.
Vadim Sterkin
Филипп, нужно делать так:
Philip
Vadim Sterkin,
Я уже так пробовал, но иконка все равно отображается некорректно.
Vadim Sterkin
А, вы про значок. У меня так сделано:
Это же есть в готовом наборе.
Philip
Помогло!) Спасибо!
что-то я сразу не заметил..
Евгений
Вадим, статья интересная — спасибо. Вопрос такой, можно ли подобное меню замутить в обычной папке проводника, пробовал мудрить в корне раздела HKEY_CLASSES_ROOT\Shell, но безрезультатно.
Vadim Sterkin
Евгений, я не пробовал, но фон папки в
HKEY_CLASSES_ROOT\Directory\Background
Василий
Вадим, приветствую Вас!
Попал в Ваш блог случайно — в поисках решения проблемы: в Windows 7, в меню свойств ярлыков на рабочем столе пропала вкладка «Ярлык» (по-моему она так называлась), в которой можно изменять иконку ярлыка. Также в меню рабочего стола, в подменю «создать» пропал пункт «Создать ярлык».
Все это, видимо, произошло после того как однажды у меня слетели файловые ассоциации (в меню проводника: «открыть с помощью — выбрать программу» по умолчанию в W7 коварно стоит галочка «использовать выбранную программу для всех файлов такого типа»), один неосторожный клик мышкой и перестали работать вообще все ярлыки. Тогда эту проблему удалось решить довольно быстро, найдя готовый скрипт в интернете, но видимо что-то осталось подпорчено в реестре.
Прошу подсказать где и что нужно подправить в реестре для решения проблемы?
Vadim Sterkin
Василий, не вижу связи с записью. Вам сюда http://forum.oszone.net/thread-228823.html
Василий
Vadim Sterkin,
Вадим, указанная Вами страничка была первой, которую я нашел в поиске. Но у меня все наоборот: со свойствами папки у меня все нормально: «настройка — сменить значок» присутствует. А вот для исправления свойств ярлыка ни чего не могу найти. С файловыми ассоциациями тоже все в порядке.
Спасибо за ответ.
Vadim Sterkin
Василий, создайте новую тему в форуме. Я не оказываю в блоге техподдержку, тем более по несвязанным с записью вопросам.
Сергей
У меня тоже пропадали созданные меню после чистки TuneUp
Просто ДОБАВЬТЕ В СВОЁ МЕНЮ ПУСТОЙ ПОДРАЗДЕЛ COMMAND
Я вот не могу создать с несколькими уровнями вложенностями.Появляется стрелочка,а там пусто.
Александр
По ссылкам на наборы отсутствуют архивы. Исправьте пожалуйста.
Vadim Sterkin
Александр, ресурс, на котором размещена часть файлов, временно отключен. На данный момент я жду его включения, потому что найти в 300+ статьях все ссылки на него не представляется возможным.
Дмитрий
Здравствуйте. Спасибо за статью очень интересная. Применил на своем пк. Вот только возник вопрос, какие еще есть параметры для запуска? Потому как не все программы из меню запускаются.
Vadim Sterkin
Дмитрий, из комплекта должно работать все. Вопрос непонятен.
Дмитрий
Я меню применил для запуска игр так вот не все запускаются к примеру вот эта
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Quake\command]
@="D:\\Games\\Quake\\Q3A_FI\\QUAKE3.EXE"
Vadim Sterkin
Сорри, у меня нет таких игр, чтобы перепроверять.
Дмитрий
А кроме command других параметров не бывает?
Vadim Sterkin
Мне о них неизвестно. Попробуйте прописать там CMD-файл, а из него уже вызывать.
Artur
Гопода, не могу убрать пунк «Графические характеристики» из контекстного меню рабочего стола. Появился он после установки драйверов Intel Graphics.
Скрин по ссылке: http://vfl.ru/fotos/7269fc3d4330010.html
Кирилл
Вадим здравствуйте.
Есть несколько дополнений касаемо вашей статьй.
1)это ограничение на количество объектов в каскадных меню
2)это баг работы утилиты reg.exe при создании каскадных контексных меню.
Если это нужно вышлю на почту информацию или ссылку дать?
Vadim Sterkin
Кирилл, что «это»?
Кирилл
Извиняюсь за сумбурность)
В кратце — я выявил последовательность ограничений на количество и порядок размещаемых объектов каскадного меню,а так же я пользуясь bat сценариями — устанавливаю и настраиваю подобные меню.Входе использования обнаружился бак утилиты reg.exe который проявляется в неспособности корректно записать параметр по умолчанию в некоторых разделах реестра,что приводит к неработоспособности дополнительных раскрывающихся меню … хотел предложить вам почитать материал что бы дополнить информацию в вашей теме,дабы другие уже не мучались)
Vadim Sterkin
Так предлагайте же, вы второй комментарий ходите вокруг да около.
Кирилл
ограничение на количество объектов,которые можно добавить к каскадному контексному меню.
Их всего может быть не более 13 в общем объеме включительно.
Такая вот чертова дюжина)
Что это значит?
А значит что вы можете сделать например 3 вложенных меню с 4 пунктами и еще одно которое не будет раскрываться так как оно будет являться уже 13 по счету.
Либо 2 меню в одном из которых например 7 пунктов а во втором 6,а все последующие отображаться не будут.
И так далее по аналогии.
Вот образец одного из меню:
Там ровно 13 объектов в совокупности.
Эксперимента ради пытаемся добавить готовый пункт от Вадима ,заготовки можно скачать тут же,на сайте — и добавив ,например,пункт «Система» убедимся в том что он … не работает!
Сработало ограничение.
Возможно таким образом пытались исключить километровых лент из пунктов меню.
Кроме всего этого имеется еще один замечательный нюанс.
Само собой мало кому захочется такую работу проделать руками в реестре.
Для этого существует такой инструмент командной строки как утилита reg.exe!
Итак ,из поста выше мы уже знаем что вложенное меню должно иметь параметр,задающий ему имя : MUIVerb
При этом параметр по умолчанию должен иметь значение : «значение не присвоено»
(иначе это будет не меню,а обычна строка — пункт).
Но именно в разделах типа
Утилита reg.exe этого сделать не может.
По необъяснимым причинам.
Причем не напрямую,не путем создания через твик…так что тут либо руками работаем либо готовим заведомо рабочий твик для импорта.
Подробнее о разборе этого бага можно прочитать тут: Обойти баг cmd и regedit
И кое что еще: если вы писали список меню в параметр SubCommands и в однои из имен допустили ошибку,то последующие пункты тоже не появятся.
Есть еще один или два момента (пока не разобрался связаны ли они) ,как будет результат — изложу.
Vadim Sterkin
Кирилл,
1. Не вставляйте BB-code, и ваши комментарии не будут уходить в спам.
2. Про ограничение уже писали в комментариях, но в документации оно не отражено.
Кирилл
Да,возможно.
Как тут файл загрузить?
Владимир
Вадим, а в Win-8.1 ваши reg-файлы работают?
Vadim Sterkin
Владимир, должны, но почему бы вам не проверить самостоятельно?