OKshef
Постоянный участник
- Сообщения
- 248
- Реакции
- 290
Мне понравилась идея и я попробовал создать каскадное меню, содержащее ярлыки программ, которое позволяет оптимизировать группировку программ. Например, вы можете создавать различные каскадные меню, содержащие определенные приложения, браузеры, медиа проигрыватели, ярлыки на системные команды и утилиты, и при наведении курсора мыши на них, они открывают список, содержащий все ваши любимые программы.
Рассмотрим создание каскадного меню в контекстном меню Рабочего стола и ярлыка Компьютер в Windows 7.
Это руководство разделено на две части:
1. В строке поиска меню Пуск или в меню Выполнить напечатайте regedit и нажмите Ввод. Таким образом открываем редактор реестра.
2. Для добавления каскадного меню в контекстное меню Рабочего стола перейдите к следующему разделу реестра:
HKEY_CLASSES_ROOT\DesktopBackground\Shell
Для добавления каскадного меню в контекстное меню значка Компьютер перейдите к следующему разделу реестра:
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell
Примечание: дальнейшие действия идентичны для указанных выше контекстных меню.
3. Необходимо создать новый подраздел в разделе «Shell«.
Нажмите правую кнопку мыши на разделе «Shell» и выберите «Создать – Раздел«.
Присвойте произвольное имя новому подразделу, например «Menu1» (без кавычек).
4. Установите курсор на новом разделе «Menu1″. В правой части редактора реестра нажмите правую кнопку мыши и выберите Создать – Строковый параметр. Необходимо создать 4 строковых параметра со следующими именами:
Параметры Icon и Position не обязательны, в отличие от параметров MUIVerb и SubCommands, которые являются обязательными.
Значение параметра MUIVerb определяет отображаемое имя каскадного меню. Вы можете присвоить произвольное имя. Например: Браузеры, Программы и т.п.
Значение параметра SubCommands содержит команды, разделенные точкой с запятой (, которые вы хотите поместить в каскадное меню. Здесь нельзя добавить любой ярлык непосредственно на программу. Сначала нужно определить команду для имени в этом списке, и после этого зарегистрировать ее, используя вторую часть руководства.
5. Предположим, вы создали каскадное меню «Программы» на шаге 3 и теперь хотите добавить в него команды запуска Блокнота и Калькулятора. В этом случае, вам необходимо установить следующее значение параметра:
notepad;calc
Вы также можете использовать np;ca вместо notepad;calc, но в таком случае вы должны использовать то же имя при регистрации этих команд во второй части руководства.
6. Значение параметра Icon используется опционально. С помощью этого параметра вы можете задать отображаемую иконку каскадного меню. В данном примере мы используем иконку Проводника. Для этого значение параметра Icon установим explorer.exe.
7. Значение параметра Position определяет позицию каскадного меню в контекстном меню. Если параметр Position отсутствует или его значение не задано, каскадное меню располагается в центре контекстного меню.
Вы моежет использовать значения Top – для расположения каскадного меню вверху контекстного меню или Bottom – для расположения его внизу контекстного меню.
Часть 2: Определение функционирования ярлыков путем их регистрации
После добавления ярлыков программ в каскадное меню, вам необходимо зарегистрировать команды, упомянутые в значении параметра SubCommands, используя следующий метод:
1. Перейдите к следующему разделу реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell
2. В этом разделе мы должны создать новый подраздел для каждой команды, указанной в значении параметра SubCommands.
В нашем примере мы использовали две команды: notepad и calc. Следовательно, необходимо создать два дополнительных раздела реестра в разделе CommandStore\Shell с именами notepad и calc.
3. После создания раздела измените значение параметра «По умолчанию» (в правой части редактора реестра) на имя, которое будет отображаться для указанного пункта каскадного меню. Например установите его значение «Блокнот» или «Калькулятор» или любое другое.
4. Если вы хотите, чтобы отображалась иконка слева от имени пункта каскадного меню, необходимо создать новый строковый параметр с именем Icon и значением равным пути к файлу, содержащему иконку.
Например, значение параметра может быть calc.exe или C:\Windows\System32\calc.exe для отображения иконки калькулятора для пункта каскадного меню Калькулятор.
5. В каждом из новых разделов реестра (в нашем примере это calc и notepad) необходимо создать подраздел с именем command.
В новом разделе command в правой части редактора реестра измените значение параметра «По умолчанию» установив его равным абсолютному пути к исполняемому файлу программы, которая будет запускаться при нажатии на соответствующий пункт каскадного меню. В случае с калькулятором или блокнотом можно указывать только имя исполняемого файла так как они находятся в папках, зарегистрированных в переменных среды.
Например: для запуска калькулятора при выборе пункта каскадного меню Калькулятор значение параметра По умолчанию в разделе command установите calc.exe.
Содержимое файлов реестра для автоматического добавления каскадных меню
Вы можете сохранить представленный ниже код в текстовый файл, присвоить ему расширение .reg и использовать для автоматического добавления каскадных меню.
Каскадное меню Программы для контекстного меню Рабочего стола:
Каскадное меню Программы для контекстного меню Компьютер:
Вы можете изменить содержимое представленных reg-файлов по своему усмотрению для добавления других каскадных меню или других пунктов каскадного меню. Изменяемые значения выделены жирным шрифтом в коде.
Для удаления каскадных меню удалите разделы реестра, созданные на шаге 3 первой части руководства и на шаге 2 второй части.
Данная статья является адаптированным переводом статьи, автором которой является Vishal Gupta.
Источник
Добавлено через 6 минут 18 секунд
Аналогичная статья с интересными дополнениями в Блоге Вадима Стеркина:
Как добавить раскрывающиеся меню в контекстное меню рабочего стола и компьютера
Создание раскрывающегося меню с несколькими уровнями вложенности
Выше я продемонстрировал, как создать раскрывающееся меню со списком пунктов. Эти пункты тоже можно сделать раскрывающимися, т.е. возможно создание вложенных меню, как показано на рисунке ниже.
Как видите, в меню есть пункт «Диск», который в свою очередь раскрывает меню с утилитами для обслуживания диска. Он отделен от остальных пунктов разделителем, хотя это не очень хорошо видно на рисунке, поскольку пункт выделен. Дальше я расскажу, как создать такое меню на основе уже изложенного выше материала.
В реестре должна получиться такая картина:
Увеличить рисунок
Вложенное меню готово, и осталось лишь указать на него ссылку в родительском меню, как было описано в разделе статьи «Создание раскрывающегося меню и добавление в него пунктов». Следуя моему примеру, в разделе
параметр SubCommands должен принять следующий вид:
Таким образом, раскрывающееся меню будет содержать вложенное меню disk-menu (Диск) первым пунктом, а также три отдельных пункта: Редактор реестра, Диспетчер задач и Диспетчер устройств.
Если вы запутались или у вас что-то не получается, удалите созданные разделы и параметры, а затем импортируйте приведенный ниже REG-файл.
+ expand source
Более глубокий уровень вложенности достигается аналогичным образом. В параметре SubCommands длявложенного меню указывается ссылка на команду в разделе CommandStore, содержащую параметры следующего уровня вложенности.
Чтобы изменить порядок меню, нужно прописать его в качестве значения для параметра (По умолчанию) в разделе
Дважды щелкните параметр (По умолчанию) и введите названия разделов меню в реестре в желаемом порядке через запятую:
Если вы хотите убрать стандартные пункты из меню, придется удалить соответствующие им разделы, но я не рекомендую этого делать, конечно.
Алфавитный порядок разделов реестра, соответствующих пунктам меню
Описанным выше способом можно изменить порядок отдельных пунктов и раскрывающихся меню в контекстном меню компьютера. С той лишь разницей, что параметр (По умолчанию) изменяется в разделе
Однако при этом в меню компьютера стандартный пункт Открыть смещается вниз и не выделяется жирным, поскольку нарушается встроенный в систему порядок пунктов меню.
Если вас это не устраивает, просто удалите параметр (По умолчанию). Он будет восстановлен без значения, и пункт Открыть вернется на свое место.
Можно отсортировать пункты иначе, используя алфавитный порядок названий разделов собственных меню. Достаточно начать названия, например, с последней буквы латинского алфавита (z) и цифры, определяющей порядок пункта.
В принципе, этот же способ можно использовать и для сортировки меню рабочего стола.
Рассмотрим создание каскадного меню в контекстном меню Рабочего стола и ярлыка Компьютер в Windows 7.
Это руководство разделено на две части:
- Создание каскадных меню и добавление ярлыков программ
- Определение функционирования ярлыков путем их регистрации
1. В строке поиска меню Пуск или в меню Выполнить напечатайте regedit и нажмите Ввод. Таким образом открываем редактор реестра.
2. Для добавления каскадного меню в контекстное меню Рабочего стола перейдите к следующему разделу реестра:
HKEY_CLASSES_ROOT\DesktopBackground\Shell
Для добавления каскадного меню в контекстное меню значка Компьютер перейдите к следующему разделу реестра:
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell
Примечание: дальнейшие действия идентичны для указанных выше контекстных меню.
3. Необходимо создать новый подраздел в разделе «Shell«.
Нажмите правую кнопку мыши на разделе «Shell» и выберите «Создать – Раздел«.
Присвойте произвольное имя новому подразделу, например «Menu1» (без кавычек).
4. Установите курсор на новом разделе «Menu1″. В правой части редактора реестра нажмите правую кнопку мыши и выберите Создать – Строковый параметр. Необходимо создать 4 строковых параметра со следующими именами:
- MUIVerb
- SubCommands
- Icon
- Position
Параметры Icon и Position не обязательны, в отличие от параметров MUIVerb и SubCommands, которые являются обязательными.
Значение параметра MUIVerb определяет отображаемое имя каскадного меню. Вы можете присвоить произвольное имя. Например: Браузеры, Программы и т.п.
Значение параметра SubCommands содержит команды, разделенные точкой с запятой (, которые вы хотите поместить в каскадное меню. Здесь нельзя добавить любой ярлык непосредственно на программу. Сначала нужно определить команду для имени в этом списке, и после этого зарегистрировать ее, используя вторую часть руководства.
5. Предположим, вы создали каскадное меню «Программы» на шаге 3 и теперь хотите добавить в него команды запуска Блокнота и Калькулятора. В этом случае, вам необходимо установить следующее значение параметра:
notepad;calc
Вы также можете использовать np;ca вместо notepad;calc, но в таком случае вы должны использовать то же имя при регистрации этих команд во второй части руководства.
6. Значение параметра Icon используется опционально. С помощью этого параметра вы можете задать отображаемую иконку каскадного меню. В данном примере мы используем иконку Проводника. Для этого значение параметра Icon установим explorer.exe.
7. Значение параметра Position определяет позицию каскадного меню в контекстном меню. Если параметр Position отсутствует или его значение не задано, каскадное меню располагается в центре контекстного меню.
Вы моежет использовать значения Top – для расположения каскадного меню вверху контекстного меню или Bottom – для расположения его внизу контекстного меню.
Часть 2: Определение функционирования ярлыков путем их регистрации
После добавления ярлыков программ в каскадное меню, вам необходимо зарегистрировать команды, упомянутые в значении параметра SubCommands, используя следующий метод:
1. Перейдите к следующему разделу реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell
2. В этом разделе мы должны создать новый подраздел для каждой команды, указанной в значении параметра SubCommands.
В нашем примере мы использовали две команды: notepad и calc. Следовательно, необходимо создать два дополнительных раздела реестра в разделе CommandStore\Shell с именами notepad и calc.
3. После создания раздела измените значение параметра «По умолчанию» (в правой части редактора реестра) на имя, которое будет отображаться для указанного пункта каскадного меню. Например установите его значение «Блокнот» или «Калькулятор» или любое другое.
4. Если вы хотите, чтобы отображалась иконка слева от имени пункта каскадного меню, необходимо создать новый строковый параметр с именем Icon и значением равным пути к файлу, содержащему иконку.
Например, значение параметра может быть calc.exe или C:\Windows\System32\calc.exe для отображения иконки калькулятора для пункта каскадного меню Калькулятор.
5. В каждом из новых разделов реестра (в нашем примере это calc и notepad) необходимо создать подраздел с именем command.
В новом разделе command в правой части редактора реестра измените значение параметра «По умолчанию» установив его равным абсолютному пути к исполняемому файлу программы, которая будет запускаться при нажатии на соответствующий пункт каскадного меню. В случае с калькулятором или блокнотом можно указывать только имя исполняемого файла так как они находятся в папках, зарегистрированных в переменных среды.
Например: для запуска калькулятора при выборе пункта каскадного меню Калькулятор значение параметра По умолчанию в разделе command установите calc.exe.
Содержимое файлов реестра для автоматического добавления каскадных меню
Вы можете сохранить представленный ниже код в текстовый файл, присвоить ему расширение .reg и использовать для автоматического добавления каскадных меню.
Каскадное меню Программы для контекстного меню Рабочего стола:
Код:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Menu1]
"MUIVerb"="Программы"
"SubCommands"="notepad;calc"
"icon"="explorer.exe"
"Position"="bottom"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
@="Блокнот"
"icon"="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
@="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc]
@="Калькулятор"
"icon"="calc.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc\command]
@="calc.exe"
Каскадное меню Программы для контекстного меню Компьютер:
Код:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Menu1]
"MUIVerb"="Программы"
"SubCommands"="notepad;calc"
"icon"="explorer.exe"
"Position"="bottom"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
@="Блокнот"
"icon"="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
@="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc]
@="Калькулятор"
"icon"="calc.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc\command]
@="calc.exe"
Вы можете изменить содержимое представленных reg-файлов по своему усмотрению для добавления других каскадных меню или других пунктов каскадного меню. Изменяемые значения выделены жирным шрифтом в коде.
Для удаления каскадных меню удалите разделы реестра, созданные на шаге 3 первой части руководства и на шаге 2 второй части.
Данная статья является адаптированным переводом статьи, автором которой является Vishal Gupta.
Источник
Добавлено через 6 минут 18 секунд
Аналогичная статья с интересными дополнениями в Блоге Вадима Стеркина:
Как добавить раскрывающиеся меню в контекстное меню рабочего стола и компьютера
Создание раскрывающегося меню с несколькими уровнями вложенности
Выше я продемонстрировал, как создать раскрывающееся меню со списком пунктов. Эти пункты тоже можно сделать раскрывающимися, т.е. возможно создание вложенных меню, как показано на рисунке ниже.
Как видите, в меню есть пункт «Диск», который в свою очередь раскрывает меню с утилитами для обслуживания диска. Он отделен от остальных пунктов разделителем, хотя это не очень хорошо видно на рисунке, поскольку пункт выделен. Дальше я расскажу, как создать такое меню на основе уже изложенного выше материала.
- В разделе реестра
Код:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell
- В том же разделе реестра создайте подраздел disk-menu (название может быть любым). Дальше все будет очень похоже на то, что вы проходили в первом разделе статьи.
- В подразделе disk-menu создайте строковые параметры:
- MUIVerb для названия меню, например, со значением Диск
- Icon для значка меню, например со значением imageres.dll,31
- SubCommands для ярлыков этого меню (в данном случае со значением defrag;cleanmgr)
- Если вы хотите использовать разделитель, создайте параметр REG_DWORD с именем CommandFlagsи шестнадцатеричным значением:
- 20 для размещения разделителя над пунктом меню
- 40 для размещения разделителя под пунктом меню
В реестре должна получиться такая картина:
Увеличить рисунок
Вложенное меню готово, и осталось лишь указать на него ссылку в родительском меню, как было описано в разделе статьи «Создание раскрывающегося меню и добавление в него пунктов». Следуя моему примеру, в разделе
Код:
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Menu1
Код:
disk-menu;regedit;taskmgr;devmgmt
Если вы запутались или у вас что-то не получается, удалите созданные разделы и параметры, а затем импортируйте приведенный ниже REG-файл.
+ expand source
Более глубокий уровень вложенности достигается аналогичным образом. В параметре SubCommands длявложенного меню указывается ссылка на команду в разделе CommandStore, содержащую параметры следующего уровня вложенности.
Чтобы изменить порядок меню, нужно прописать его в качестве значения для параметра (По умолчанию) в разделе
Код:
HKEY_CLASSES_ROOT\DesktopBackground\Shell
Дважды щелкните параметр (По умолчанию) и введите названия разделов меню в реестре в желаемом порядке через запятую:
Код:
Display,Gadgets,Personalize,WinApps,Admin,System
Если вы хотите убрать стандартные пункты из меню, придется удалить соответствующие им разделы, но я не рекомендую этого делать, конечно.
Алфавитный порядок разделов реестра, соответствующих пунктам меню
Описанным выше способом можно изменить порядок отдельных пунктов и раскрывающихся меню в контекстном меню компьютера. С той лишь разницей, что параметр (По умолчанию) изменяется в разделе
Код:
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell
Если вас это не устраивает, просто удалите параметр (По умолчанию). Он будет восстановлен без значения, и пункт Открыть вернется на свое место.
Можно отсортировать пункты иначе, используя алфавитный порядок названий разделов собственных меню. Достаточно начать названия, например, с последней буквы латинского алфавита (z) и цифры, определяющей порядок пункта.
В принципе, этот же способ можно использовать и для сортировки меню рабочего стола.
Последнее редактирование модератором: