Что такое контекстное меню Windows и как его настроить. Контекстное меню где находится


Как добавить раскрывающиеся меню в контекстное меню рабочего стола и компьютера – Вадим Стеркин

В контекстных меню рабочего стола и компьютера очень удобно иметь различные программы и инструменты для быстрого доступа. Проблема лишь в том, что по мере добавления новых пунктов в меню, оно разрастается, и ориентироваться в нем становится все труднее.

В этой статье я расскажу, как создать в контекстных меню раскрывающиеся (каскадные) меню, которые будут содержать собственные наборы программ и административных средств.

Увеличить рисунок

Каждый пункт меню будет снабжен значком, чтобы можно было легко найти нужное приложение.

Увеличить рисунок

На этой странице:

Обзор

Для работы раскрывающегося меню нужны две составляющих:

  • команды, которые выполняются при щелчке по пункту меню
  • меню, раскрывающее список пунктов

Сначала я расскажу, как зарегистрировать в реестре собственные команды. По сравнению со способом добавления отдельных пунктов меню, о котором я рассказывал здесь, такой подход имеет два преимущества:

  1. Единожды зарегистрировав команду, ее можно вызывать из любого меню, если их несколько.
  2. Управление пунктами меню значительно упрощается.

Следуя простым пошаговым инструкциям, через 10 минут вы создадите собственное раскрывающееся меню, которое показано на рисунке ниже.

В конце статьи вы также найдете готовые наборы раскрывающихся меню.

Регистрация команд в реестре

Сначала мы зарегистрируем команды, которые будут выполняться при щелчке по пункту меню. Откройте редактор реестра и приступим!

  1. Перейдите в раздел
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell
  3. В этом разделе создайте подразделы для каждой программы или команды, которую вы хотите видеть в меню. Названия подразделов могут быть любыми, но обязательно латинскими и без пробелов. В моем примере создается три подраздела:
  4. В каждом из созданных подразделов дважды щелкните параметр (По умолчанию) и в качестве значения задайте имя ярлыка, которое вы хотите видеть в меню. Например, для подраздела regedit я задал имя Редактор реестра.
  5. Если вы хотите, чтобы рядом с названием отображался значок, создайте там же строковый параметр Icon и в качестве значения укажите исполняемый файл или библиотеку с номером ресурса. Я указал regedit.exe, чтобы использовать стандартный значок редактора реестра.
  6. Теперь задайте команду для пункта меню. В каждом разделе, который вы создали на шаге 2, создайте подраздел с именем command. Затем дважды щелкните параметр (По умолчанию) и в качестве значения укажите путь к программе. Например, для редактора реестра я указал regedit.exe (полный путь не нужен, поскольку исполняемый файл находится в системной папке).

В реестре должна получиться такая картина:

Увеличить рисунок

Создание раскрывающегося меню и добавление в него пунктов

Теперь нужно в реестре создать меню и добавить в него пункты, которые будут служить для вызова команд.

  1. В зависимости от того, где вы хотите создать раскрывающееся меню, выберите раздел.
  2. Щелкните правой кнопкой мыши по разделу shell и выберите пункт Создать – Новый раздел. Имя для раздела можно выбрать любое, но оно обязательно должно быть латинское. Назовите его, например, Menu1. В этом разделе будут созданы следующие строковые параметры.
  3. Параметр MUIVerb (обязательно) отвечает за название раскрывающегося меню, поэтому значение можете выбирать любое. Я назвал свое Система.
  4. Параметр SubCommands (обязательно) содержит список указателей для команд, которые будут выполняться из меню. Названия указателей должны соответствовать названиям подразделов реестра, которые вы создали на шаге 2 в предыдущем разделе статьи. Разделяйте указатели точкой с запятой (;) и перечисляйте их в том порядке, в котором вы хотите видеть пункты в меню. Чтобы вам было проще понять, я приведу свой список:
  5. regedit;taskmgr;devmgmt

    Таким образом, у меня в меню будут редактор реестра, диспетчер задач и диспетчер устройств.

  6. Параметр Icon (необязательно) задает значок для раскрывающегося меню. Можно задать путь к библиотеке (dll) и номер ресурса (значка), либо полный путь к исполняемому файлу (если он в системной папке, достаточно указать только имя). Для своего меню «Система» я задал значок imageres.dll,104 (сначала начала имя файла, а через запятую – номер ресурса).
  7. Параметр Position (необязательно) отвечает за расположение раскрывающегося меню в контекстном меню. Вы можете задать ему значение Top (вверху) или Bottom (внизу). Если значение не задавать, раскрывающееся меню окажется в середине контекстного меню. Я расположил свое меню внизу.
  8. Параметр Extended (необязательно) отвечает за отображение пункта в меню. Когда параметр присутствует, чтобы увидеть созданный пункт, нужно вызывать контекстное меню, удерживая нажатой клавишей SHIFT. Этому параметру не требуются значения.

Если вы хотите создать два меню, создайте раздел 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

Теперь вы можете увидеть, какая структура должна быть в реестре.

Создание раскрывающегося меню с несколькими уровнями вложенности

Выше я продемонстрировал, как создать раскрывающееся меню со списком пунктов. Эти пункты тоже можно сделать раскрывающимися, т.е. возможно создание вложенных меню, как показано на рисунке ниже.

Увеличить рисунок

Как видите, в меню есть пункт «Диск», который в свою очередь раскрывает меню с утилитами для обслуживания диска. Он отделен от остальных пунктов разделителем, хотя это не очень хорошо видно на рисунке, поскольку пункт выделен. Дальше я расскажу, как создать такое меню на основе уже изложенного выше материала.

  1. В разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell

    создайте ярлыки для двух новых пунктов (Дефрагментация диска и Очистка диска), следуя инструкциям в разделе статьи «Регистрация команд в реестре». Я назвал подразделы defrag и cleanmgr.

  2. В том же разделе реестра создайте подраздел disk-menu (название может быть любым). Дальше все будет очень похоже на то, что вы проходили в первом разделе статьи.
  3. В подразделе disk-menu создайте строковые параметры:
    • MUIVerb для названия меню, например, со значением Диск
    • Icon для значка меню, например со значением imageres.dll,31
    • SubCommands для ярлыков этого меню (в данном случае со значением defrag;cleanmgr)
  4. Если вы хотите использовать разделитель, создайте параметр 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-файлами, которые использовались в статье в качестве образцов, включая и дополнительный уровень вложенности.

Обсуждение завершено.

www.outsidethebox.ms

Контекстное меню windows 10

Добавлено: 10.12.2016

Категория: ■ Полезности

Просмотров: 3071

Комментариев: 24

 

Контекстное меню windows 10

Контекстное меню - это скрытое меню, которое всплывает при нажатии на объект правой кнопкой мыши. Поэтому его называют всплывающим меню или меню правой кнопки мыши. Такое меню выглядит как список команд для выбранного элемента или объекта.

 

Контекстное меню для для разных объектов выглядит по-разному. Оно содержит те команды и функции, которые применимы к этому объекту. Ниже приведены примеры того, как выглядит контекстное меню для разных элементов, файлов. 

На первом рисунке видим контекстное меню файла, на втором рисунке - меню папки.

           

Ниже пример контекстного меню рабочего стола и папки проводник

         

Где находится контекстное меню

Можно удалить ненужные команды или функции из контекстного меню. Для этого находим нужную папку в редакторе реестра и удаляем ее. Чтобы найти папку хранения контекстного меню, нужно открыть командуПуск -> выполнить

                               

Затем вписать в окошко "regedit"

                   

Откроется редактор реестра, следуя по указанным стрелочкам, выбираем то, что хотим удалить, выделяем папку и удаляем (для примера выделена папка WinRAR)

                   

Добавить в контекстное меню что-либо обычным способом не получится. Для это на сайте разработчика winaero.com вы найдете программу Context Menu Tuner. Программа не сложная, нужно будет ее скачать и установить себе на компьютер.

С ее помощью вы сможете редактировать контекстное меню по вашему усмотрению. Программа очень простая, добавите необходимые пункты к вашему меню и наслаждайтесь быстрой работой и экономией времени. Устанавливается на win7 и win8, win10 пока нет.

Показала на Win 10, но принцип везде одинаковый.  

ryjovasv.100kursov.com

Дизайн контекстных меню / Блог компании UXDepot / Хабр

Представляю вашему вниманию перевод статьи под названием "Context Menu design" от Hagan Rivers. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением компании Two Rivers Consulting Corporation.

Что такое контекстное меню?

Контекстное меню это меню, которое содержит команды, относящиеся к объекту, на который в данный момент указывает курсор. Это меню еще часто называют меню правого клика — из-за того, что исторически оно вызывалось правым кликом мыши в Windows.

Контекстное меню сообщения в Apple Mail (слева) и Windows Mail (справа).

Стоит ли использовать контекстные меню?

Контекстные меню подходят не для всех приложений. Я настоятельно не советую использовать их для интернет-магазинов, как, например, Lands End или Amazon. Я также не советую использовать контекстные меню для потребительских сайтов, не требующих сложных взаимодействий: банковских сайтов, сайтов знакомств, даже для Facebook.

Cчитаю, что контекстные меню наиболее эффективны в серьезных корпоративных приложениях, которые пользователь использует часто и в которых хорошо разбирается. В таких приложениях контекстные меню чрезвычайно полезны. Почему?

Прежде всего, контекстные меню помогают экономить движения мыши. Если пользователь вынужден часто использовать повторяющиеся действия, то использование контекстного меню помогает уберечь от ненужных движений — вместо того, чтобы выбирать объекты, а затем «идти курсором» в тулбар для того, чтобы выбрать какое-либо действие, пользователь может сделать все прямо на месте.

Во-вторых, контекстные меню помогают пользователям больше узнать об объектах в приложении. Открывая контекстное меню, они видят, какие команды доступны для этого объекта. Это помогает пользователям понять с чем они взаимодействуют в данный момент времени и что приложение позволяет сделать с объектом этого типа.

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

Итак, если вы твердо решили что без контекстного меню вам не обойтись, то давайте подумаем как нам правильно его сделать.

Как вызывается контекстное меню?

Традиционно в Windows-приложениях контекстное меню вызывается наведением курсора на объект и кликом по нему правой кнопкой мыши. В MacOS-системах пользователь также может использовать правую кнопку мыши или же может кликнуть по объекту левой кнопкой, зажав при этом кнопку Control. Обычно это действие называется просто «правый клик».

Правый клик в любой точке объекта должен вызывать контекстное меню. Если это иконка с подписью, то правый клик и по иконке, и по подписи должны вызывать одно и то же контекстное меню. Если объект — это строка в таблице, то одно и то же меню должно открываться независимо от того, в каком месте этой строки пользователь кликнет. Никогда, слышите, никогда не показывайте разные контекстные меню в зависимости от того, в каком столбце этой строки кликнул пользователь.

Небольшое замечание: В мире устройств с сенсорным экранами (таких, к примеру, как iPad), у нас нет курсора, который можно навести на объект. В таком случае можно быстро назвать три возможных способа указывать на объект:

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

Контекстное меню для графического файла в MacOS X (слева) и Windows Vista (справа).

Добавление элемента для вызова контекстного меню

В некоторых веб-приложениях есть элемент интерфейса, нажатие по которому вызывает контекстное меню. Он обычно называется «иконкой меню» — это иконка, изображающая стрелочку вниз, которая находится прямо возле названия (или изображения) объекта.

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

Контрол меню, показывающий что в данном случае меню доступно.

Если вы собираетесь использовать контрол меню, то стоит сделать так, чтобы нажатие на него отличалось от нажатия на сам объект. В примере выше если пользователь кликает где-нибудь в строке Ahmed Hassain, то он просто выделяет всю строку Ahmed Hassain, однако если он кликает по иконке меню для этой строки, то он получает контекстное меню (и строка не выделяется). Кроме того, пользователь также должен иметь возможность просто кликнуть правой кнопкой в любом месте строки, чтобы открыть контекстное меню — без необходимости нажимать на иконку.

Стоит ли использовать контрол меню? Оно отлично решает одну из больших проблем с контекстными меню: многие пользователи не знают, что контекстное меню доступно. В веб-приложениях пользователи часто предполагают что контекстного меню нет (его иногда нет даже в десктопных приложениях).

Контрол меню помогает показать что контекстное меню есть и подталкивает пользователя использовать его. С другой стороны, есть такие пользователи, которые всегда предполагают что меню доступно, и они будут сами пытаться открыть его. Если вы делаете приложение для этой группы пользователей, то вам не обязательно делать заметный контрол для вызова меню.

Большая проблема с иконкой меню состоит в том, что она часто повторяется на экране и засоряет его. Решить эту проблему можно, показывая иконку только тогда, когда курсор мыши наводится на объект.

Контрол меню, который появляется при наведении курсором мыши.

Еще одна проблема контрола меню заключается в том, что его сложно прикрепить к некоторым объектам. Возьмем, к примеру, контекстное меню для тулбара: тулбар сам по себе является большим элементом интерфейса, и не совсем понятно, куда в нем ставить контрол меню, так чтобы было понятно, что здесь есть меню. Поэтому, контролы меню работают далеко не везде.

Что должно содержаться в контекстном меню?

Контекстное меню должно содержать команды, которые относятся к выделенному элементу. Это означает что оно может содержать команды из строки меню или панели инструментов, которые можно применить к выделенному элементу.

Контекстное меню не должно содержать ВСЕ доступные для объекта команды — это делает меню огромным и трудным для использования. Сосредоточьтесь на наиболее часто используемых и самых важных командах. Перегрузить меню ненужными командами — это самое плохое, что вы можете с ним сделать. Сфокусируйтесь на важном, уменьшайте бардак.

Вот, к примеру, три контекстных меню для выделенного фрагмента текста: в Dreamweaver, Microsoft Word и Apple Pages. Меню Dreamweaver пытается быть похожим на швейцарский складной ножик и предлагает все возможные команды в одном контекстном меню. Из-за этого оно получается настолько большим, с кучей вложенных списков, что им становится трудно пользоваться. Лично я избегаю вызывать контекстное меню в Dreamweaver.

В нем наиболее часто используемые функции (например «Копировать» или «Вставить») располагаются ближе к концу списка. В Word и Pages наоборот, часто используемые команды выносятся наверх списка, а команды, содержащие вложенные списки — в конец. Они также отобрали для меню только самые важные функции, и лучше организовали их.

Если вы хотите сделать свое контекстное меню удобнее, оставьте в нем только 60% самых важных команд вместо всех 100%. Если в одном меню попытаться уместить все важные команды, то это не приведет ни к чему хорошему — размеры меню увеличатся, а удобство его использования и скорость работы с ним наоборот, снизится. Помните: главная причина, по которой контекстные меню вообще используются — это возможность сэкономить время пользователя.

Контекстные меню в Dreamweaver, Microsoft Word и Apple Pages

Контекстное меню не должно содержать команды, не относящиеся к выделенному объекту (такие, например, как «Обновить страницу»). Концентрируйтесь на тех командах, которые были бы полезны для работы с тем объектом, на который наводит пользователь.

Когда возможно, группируйте команды в блоки от 1 до 6 штук в каждом. Отделяйте блоки линиями. Наиболее часто используемые команды следует выносить наверх списка, наименее часто используемые — убирать вниз. Если команда используется особенно редко, то, возможно ей не место в контекстном меню.

Не стесняйтесь использовать вложенные списки, однако команды со вложенными списками следует уносить вниз контекстного меню. Мне не нравятся вложенные списки, потому что из-за них пользователь может совершить ошибку, и кроме того на их открытие тратится много времени — в то время как смысл контекстных меню сводится к экономии времени.

Помимо этого вы можете использовать нестандартные элементы меню. Например, вместе с контекстным меню в Microsoft Word 2007 открывается плавающая палитра, а в контекстном меню файла в Mac OS есть специальные цветные кнопки выбора цвета ярлыка. Только потому что мы говорим «меню», не значит что оно должно быть ограничено только текстом.

Контекстное меню может быть больше чем просто список команд

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

Обычно я помещаю «команду по умолчанию» первой в контекстном меню. Это та команда, которая совершится при двойном клике на объекте (например, команда Open в контекстном меню файла). Если у объекта нет команды по умолчанию, концентрируйтесь на самых используемых командах.

Вы можете использовать название объекта в контекстном меню для того, чтобы сделать команды понятнее. Например, вместо названия команды «Открыть» вы можете использовать словосочетание «Открыть Скриншот.png». При использовании этого приема бывает сложно найти золотую середину — нужно сделать меню достаточно самоочевидным, но не слишком многословным. Меню в Mac OS содержит название объекта в одних командах, и не содержит в других.

В своих контекстных меню я не использую иконки. Честно говоря, я вообще не использую их в своих приложениях — по моему мнению они засоряют интерфейс и не несут особой пользы (примечание переводчиков — о_О). Однако это только мое мнение, а вы решайте сами. В контекстных меню многих приложений нет указания горячих клавиш возле команд. Думаю, что это сделано затем, чтобы меню казалось легче. Здесь так же решать вам.

Что насчет нескольких выделенных объектов?

Обычно контекстное меню вызывается для одного выделенного объекта, но что делать, если пользователь выбрал несколько объектов, и потом открывает контекстное меню? Давайте рассмотрим несколько примеров.

Представим что у нас есть шесть объектов: четыре папки (А, В, С, D) и два графических файла (Е и F).

Папки и файлы в Windows

Пример 1

Пользователь выбирает папки A, B, C, а затем вызывает контекстное меню, находясь мышкой на папке D (важно: папка D изначально не была выбрана). В таком случае для объектов А, В, и С необходимо отменить выделение и открыть контекстное меню только на выделенном D.

Пример 2

Если пользователь выделяет А, В и С, а затем вызывает контекстное меню, находясь мышкой на С, то сначала мы должны определить, являются ли А, В и С объектами одного типа. Говоря иначе, у всех этих объектов одинаковое меню? Если да, то все просто: сделайте, чтобы все команды в этом меню применялись ко всем выделенным объектам.

Если, к примеру, это будет команда «Открыть», то она должна открыть все три объекта. Если есть команда, которую нельзя применить больше чем к одному объекту, то нужно сделать команду неактивной, не убирая ее из меню.

Ранее я говорил о том, что мы можем написать «Открыть Скриншот.png» вместо «Открыть» для того, чтобы помочь пользователю понять, к чему команда применяется. Точно так же в нашем случае мы можем написать «Открыть 3 объекта» — это поможет понять, что действие применяется ко всем выделенным объектов. В нашем случае контекстное меню может выглядеть следующим образом:

  • Открыть 3 объекта
  • Удалить 3 объекта
  • Копировать 3 объекта
Подобный подход использует Apple в Mac OS X, однако она не использует такой подход повсеместно. Я не могу понять почему в контекстном меню встречается словосочетание «Сжать 3 файла», но нигде не говорится «Открыть 3 файла». Странно.

Пример 3

А теперь давайте рассмотрим случай, когда пользователь выбирает несколько разнородных объектов, например папки А, B и графический файл Е. Как вы понимаете, контекстные меню для папок и графических файлов совершенно разные. Это так называемое смешанное выделение. В примере ниже вы можете увидеть контекстное меню для папки (слева) и для изображения (справа) — они сильно различаются.

Контекстное меню Windows для папок (слева) и графических файлов (справа)

Что же нам делать в случае смешанного выделения, какое контекстное меню использовать? Самый распространенный ответ — показывать контекстное меню для того объекта, на который пользователь навел курсор мыши.

Используйте контекстное меню объекта, на который наведен курсор мыши

Например, пользователь выбирает А, В и E смешанным выделением и вызывает контекстное меню на Е. Контекстное меню, которое вы видите это контекстное меню для Е (вы всегда будете видеть контекстное меню для объекта, на котором расположен курсор мыши).

Слева: Выделена папка А, показывается контекстное меню для папки.В центре: Выделено изображение Е, показывается контекстное меню для графического файла Е.Справа: Выделаны две папки (А и В) и графический файл Е, показывается контекстное меню для файла Е.

Контекстное меню в случае смешанного выделения

Однако если пользователь выберет из контекстного меню для файлов разного типа команду, которая может примениться ко всем выделенным объектам, следует сделать, чтобы это происходило. Так, если выбрана команда «Удалить», должны быть удалены все выделенные объекты, даже если это объекты разного типа.

С другой стороны, если пользователь вызовет меню для E и выберет команду, которая не может примениться к A и B, она применится только к E. Если пользователь выберет команду «Экспорт», и она может примениться только к E, только E будет экспортировано.

На двух рисунках ниже показано одно и то же выделение: A, B и E. На рисунке слева открыто контекстное меню на B, и мы видим меню для папок. На рисунке справа у нас выделены те же объекты, но меню открыто на E, и поэтому мы видим меню для файла изображения.

Вы будете удивлены — такой подход используется в подавляющем большинстве приложений, которыми вы регулярно пользуетесь. Задумайтесь об этом: если вы выберете команду «Удалить», то ожидаете, что удалятся все три объекта. Это одна из тех вещей, которые звучат сложно, но работают для пользователей.

Проблема с таким подходом состоит в том, что он не всегда предсказуем. Выбирая «Экспорт» вы не знаете точно, какие из объектов будут экспортированы. Вы можете быть уверены в принципах работы такого подхода только в тех приложениях, которые уже хорошо знаете. Для того, чтобы избавиться от такого несоответствия, я еще раз могу предложить использовать понятное название команд, например:

  • Удалить 3 файла
  • Экспортировать Скриншот.png
Думаю это сильно улучшит и упростит ситуацию.

Этот подход имеет одну сложность в реализации — вам нужно пройтись по всем командам во всех контекстных меню и подумать, какие команды можно применить в смешанных выделениях, а какие нельзя. Чем более похожи контекстные меню для разных объектов, тем проще будет эта задача для вас. В Mac OS X контекстные меню для папок и файлов почти одинаковые, что сильно упростило жизнь Apple.

Смешанное выделение и контекстные меню в OS X

Этот пример показывает, что лучший способ решить проблему это просто избежать ее появления. Другими словами, если вы постараетесь не использовать разные контекстные меню для разных объектов, то проблема, связанная со смешанным выделением не будет грозить вам. Поэтому одним из решений было бы делать контекстные меню одинаковыми для всех типов объектов.

А что если сбрасывать выделение?

Если пользователь выделяет несколько объектов (например, А, В и Е), а затем вызывает контекстное меню на любом из объектов, выделение сбрасывается. Выделяется объект, на котором пользователь вызвал меню, и меню применяется только для этого объекта.

Лично мне не нравится такой подход, так как иногда бывают случаи, когда пользователь потратил много времени на то, чтобы сделать определенное выделение. Неожиданный сброс выделения в таком случае будет неприятностью. Думаю, этого подхода стоит избегать.

А что насчет построения нового меню?

Другим решением проблемы может стать создание нового контекстного меню, содержащего только команды, подходящие одновременно для всех выделенных объектов.

Я могу сказать так — не стоит. Это плохо по целому ряду причин. Это смесь проблем в области дизайна и программирования — каждый раз, когда вы добавляете новую команду в любое меню, вам придется перерабатывать все возможные комбинации меню. Это не весело, поверьте мне.

И что хуже всего — такой подход плох для самих пользователей. Это нестандартное решение и оно отторгается людьми. Пользователь в меню опирается на позиционную память (определенные паттерны, которые наш мозг формирует для облегчения сканирования интерфейса), то есть он помнит ГДЕ в меню находятся команды.

Когда вы показываете ему непривычные меню, изменяющиеся в зависимости от текущего выделения, вы вносите беспорядок в его позиционную память, из-за чего пользователь тратит больше времени на работу с меню. То есть, из-за такого подхода пользователь может сделать больше ошибок и потратит больше времени — полная противоположность того, зачем мы вообще используем контекстные меню.

Выводы

А теперь давайте подведем итоги:Контекстные меню подходят не для всех приложений. Прежде чем создавать их, убедитесь что пользователи будут их применять, и что они им нужны.

Если вы не уверены — проведите несколько юзабилити-тестов и убедитесь, что пользователи хотя бы пытаются их открыть. Если тестеры выполняют повторяющиеся рутинные задачи и ни один из них ни разу не открыл контекстного меню, оно не нужно.

Цель создания контекстного меню — экономия времени. Создавайте их такими, чтобы они действительно экономили время. Делайте их короткими и хорошо организованными. Подумайте над путями совершенствования дизайна контекстного меню.

Я упоминала несколько идей: добавление контрола меню, который появляется при наведении мыши на объект; указание в меню, какие объекты затронет та или иная команда. Я уверена, возможностей для развития очень много. Не стесняйтесь брать за основу эту «стандартную» формулу и усовершенствовать ее.

PS от переводчиков: Надеюсь, вам понравилась статья. Мы будем рады, если вы укажете нам на ошибки в переводе, чтобы мы могли их оперативно исправить. Пишите мне в личку, пожалуйста :)

habr.com

Что такое контекстное меню Windows и как его настроить

Многим нравится операционная система Windows, и многие из нас выросли на ней. Но некоторые непостоянные пользователи ПК – или те, кто совсем недавно перешел на Windows – часто путаются в поисках информации о некоторых простых вещах, которые управляют операционной системой от Microsoft. Один из таких элементов графического элемента называется «контекстное меню Windows», или «меню правой кнопки мыши».

Сегодня мы расскажем вам не только об этом неотъемлемом элементе взаимодействия с Windows, но и о стороннем приложении, которое позволяет добавлять пользовательские элементы в контекстное меню.

Итак, что же такое контекстное меню Windows?

Говоря простыми словами, это всплывающее меню, которое появляется при нажатии правой кнопки мыши в любой навигационной области экрана (отсюда и название «меню правой кнопки мыши»). Доступ к контекстному меню можно получить в папках, на панели задач, в веб-браузерах и других областях графического интерфейса. Контекстное меню не является эксклюзивной особенностью Windows, так что вы могли видеть его и в других операционных системах, включая Mac OS X или Linux.

Говоря о внешнем виде контекстного меню Windows, то везде оно выглядит практически одинаково – отличаются лишь элементы внутри него. Например, на скриншоте ниже показано контекстное меню, которое открывается при щелчке правой кнопки мыши на рабочем столе, скажем, для настройки фонового изображения рабочего стола в окне «Персонализация».

Обычно контекстное меню несет в себе такие элементы, как «Вид», «Сортировка», «Копировать», «Вставить», «Переименовать», «Свойства» и т.д. Некоторые из пунктов меню основаны на контексте. Другими словами, в одной из областей операционной системы контекстное меню может содержать одни пункты, а в другой – уже другие. Например, меню, которые всплывает при щелчке правой кнопкой мыши на панели задач, будет содержать в себе совершенно другие пункты в сравнении с меню, которое вы видите на скриншоте ниже.

Вот еще один простой пример контекстного меню, которое появляется при щелчке правой кнопкой мыши на папке:

Теперь, когда вы узнали, что такое контекстное меню в Windows, и как оно работает, давайте рассмотрим удобное и бесплатное приложение, с которым можно легко настроить меню.

Context Menu Tuner

Портативное приложение Context Menu Tuner, которое позволяет добавлять пользовательские элементы в «меню правой кнопки мыши» в Windows 7, Windows 8 и Windows 8.1, было разработано Сергеем Ткаченко (WinAero) – известный разработчик, который является автором множества полезных инструментов, включая TakeOwnershipEx. Приложение очень удобно в том смысле, что весь процесс добавления пунктов в контекстное меню требует от пользователя нескольких нажатий.

Чтобы начать, запустите приложение. Интерфейс Context Menu Tuner состоит из двух различных панелей – левая содержит список поддерживаемых команд, а правая состоит из областей проводника Windows. Для добавления команды, нужно выбрать одну из них в левой панели, а затем, после выбора предпочитаемого элемента в правой панели, необходимо нажать на кнопку «Добавить». За удаление добавленных команд, как несложно догадаться, отвечает кнопка «Удалить».

Дополнительные функции приложения позволяют добавлять разделители до и после определенных пунктов меню. Кроме того, есть пара дополнительных опций.

Другая интересная особенность приложения заключается в его способности добавлять пользовательские команды для определенных типов файлов. Открыв окно «Выбрать тип файла», в которое можно попасть, нажав на кнопку «Добавить -> Добавить к указанному типу файла» в главном окне приложения, вы увидите впечатляющее количество поддерживаемых расширений файлов. Список очень длинный, поэтому, чтобы быстро найти конкретный тип файла, используйте поисковую строку.

На скриншоте ниже показано мое контекстное меню, которое я изменил с помощью Context Menu Tuner:

На этом все. Теперь вы знаете, что представляет собой контекстное меню Windows, и знаете простое решение для его редактирования.

windowstips.ru

Контекстное меню. Тонкости реестра Windows Vista. Трюки и эффекты

Контекстное меню

Если вы задавались вопросом, как скрыть тот или иной пункт контекстного меню файла и папки, то в данном разделе вы сможете найти ответы на свои вопросы.

Команда Запуск от имени администратора

В контекстном меню исполняемых файлов (и ярлыков на них) по умолчанию отображается команда Запуск от имени администратора. Вы можете скрыть эту команду.

Для этого достаточно присвоить параметру REG_DWORD-типа HideRunAsVerb значение 1. Параметр расположен в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer.

Для внесения изменений компьютер нужно перезагрузить.

Контекстное меню Панели задач

При необходимости можно запретить пользователям применение контекстного меню, вызываемого щелчком правой кнопкой мыши на Панели задач. Для этого следует в разделе реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer создать REG_DWORD-параметр NoTrayContextMenu и присвоить ему значение 1. Фрагмент импортируемого в реестр REG-файла представлен ниже (расположение файла на компакт-диске – Файлы реестраРежимыNoTrayContextMenu.reg).

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer]

"NoTrayContextMenu"=dword:00000001

После внесения в реестр указанных изменений и последующей перезагрузки компьютера контекстное меню Панели задач вызываться не будет. Чтобы вернуться в исходное состояние, необходимо удалить из реестра параметр NoTrayContextMenu либо присвоить ему значение 0, после чего перезагрузить компьютер.

Открытие REG-файлов

Как отмечалось выше, двойной щелчок кнопкой мыши на REG-файле не открывает его для редактирования, как большинство других файлов, а приводит к импорту этого файла в реестр (см. разд. 1.4). При этом система сначала выдает запрос на подтверждение этого действия, а после импорта выводит информационное сообщение об успешном завершении процедуры. Возможности реестра позволяют изменить такой режим работы.

Чтобы при двойном щелчке кнопкой мыши REG-файл не импортировался в реестр, а открывался для редактирования в текстовом редакторе (удобнее всего редактировать REG-файл в Блокноте), необходимо в разделе реестра HKEY_CLASSES_ROOT egfileshellopencommand присвоить строковому параметру (По умолчанию) значение Notepad.EXE "%1". Для этого в реестр импортируется следующий REG-файл (расположение файла на компакт-диске – Файлы реестраРежимыCommand.reg):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT egfileshellopencommand]

@="Notepad.EXE "%1""

После внесения в реестр указанных изменений двойной щелчок кнопкой мыши (либо нажатие клавиши Enter) на значке REG-файла откроет этот файл для редактирования в окне текстового редактора (Блокнот). Для возврата в исходное состояние нужно присвоить параметру (По умолчанию) первоначальное значение – regedit.exe «%1». Чтобы изменения вступили в силу, перезагрузка компьютера не требуется.

Если же вносить такие изменения нет необходимости, то можно оставить предыдущий режим работы, отключив при этом появление запроса на подтверждение импорта и информационное сообщение об успешном окончании процедуры. В данном случае этому же параметру нужно установить значение regedit.exes "%1". После внесения в реестр указанных изменений двойной щелчок кнопкой мыши (либо нажатие клавиши Enter) на REG-файле приведет к его импорту в реестр без вывода этих двух окон.

Скрытие контекстного меню

Чтобы сделать недоступным контекстное меню Проводника, вызываемое щелчком правой кнопкой мыши на каком-либо файле, необходимо в разделе HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer создать REG_DWORD-параметр NoViewContextMenu и присвоить ему значение 1. Фрагмент соответствующего REG-файла приведен ниже (расположение на прилагающемся к книге компакт-диске – Файлы реестраИнтерфейсInterNoViewContextMenu.reg).

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer]

"NoViewContextMenu"=dword:00000001

В результате после перезагрузки компьютера контекстное меню Проводника перестанет вызываться. Чтобы вернуть исходное состояние, следует либо удалить параметр NoViewContextMenu, либо присвоить ему значение 0, после чего вновь перезагрузить компьютер.

Тем не менее даже при отключенном контекстном меню доступ к дискам компьютера сохраняется. Например, если воспользоваться командой Файл ? Создать ? Ярлык, на экране отображается окно мастера создания ярлыка, в котором с помощью кнопки Обзор открывается доступ как к локальным, так и к сетевым дискам. Чтобы перекрыть этот доступ, достаточно в системном реестре удалить или переименовать раздел HKEY_CLASSES_ROOT.lnkShellNew. В результате этого возможность создания ярлыка останется, но уже без помощи мастера создания ярлыка и, следовательно, без доступа к дискам (правда, вызвать мастер создания ярлыка можно будет с помощью команды rundll32.exe appwiz.cpl,NewLinkHere «путь к файлу, для которого нужно сделать ярлык»). Результат выполненных действий можно увидеть без перезагрузки компьютера.

Список Создать

Подраздел ShellNew, расположенный в одном из подразделов расширений некоторых файлов, предназначен для добавления к списку Создать контекстного меню Рабочего стола или Проводника команды создания файла с соответствующим расширением. Название этой команды определяется описанием расширения файла (это описание можно увидеть в корневом разделе HKEY_CLASSES_ROOT в параметре (По умолчанию) подраздела, название которого соответствует значению параметра (По умолчанию) подраздела расширения файла). Сама команда, которая вызывается при выборе соответствующей строки из списка Создать, задается одним из параметров подраздела ShellNew, которые описаны ниже (обратите внимание: подраздел ShellNew должен содержать только ОДИН из этих параметров).

• Command – этот параметр строкового типа определяет команду, которая будет выполняться при выборе соответствующего пункта меню Создать (то есть содержимое этого параметра ничем не отличается от содержимого параметра (По умолчанию) подраздела Command, с помощью которого мы уже создавали команды контекстного меню файлов и ActiveX-объектов).

• NullFile – данный строковый параметр не должен содержать никакого значения. При этом после выбора команды для создания файла соответствующего расширения будет создаваться пустой файл. Например, с помощью этого параметра создаются текстовые файлы.

• FileName – имеет строковый тип и определяет путь и имя файла, который будет создаваться (просто копироваться в папку, откуда был вызван список Создать, или на Рабочий стол) после выбора соответствующей команды меню Создать.

• Data – данный параметр двоичного типа содержит последовательность цифр в шестнадцатеричной системе счисления, которую система будет использовать для генерации содержимого файла (например, этот параметр используют файлы с музыкальным содержимым для возможности создания пустого файла-образца звука).

Стандартные пункты списка Создать. По умолчанию список Создать содержит пункты, с помощью которых можно создавать файлы определенных расширений. Описанные далее параметры названы по аналогии с расширениями файлов и задают определенные пункты списка Создать.

• Briefcase – Портфель.

• .bmp – Точечный рисунок, используемый для создания файла изображения, предназначенного для работы с программой mspaint.exe.

• .contact – Контакт, используемый для создания контакта для адресной книги почтового клиента Почта Windows (расположена в каталоге %userprofile%Contacts).

• .zip – Сжатая папка. Для удаления данного пункта нужно удалить раздел ShellNew из ветви реестра HKEY_CLASSES_ROOT.zipCompressedFolder.

• .jnt – Документ Журнала, используемый для создания файла программы Журнал (%programfiles%Windows JournalJournal.exe). Для удаления данного пункта нужно удалить раздел ShellNew из ветви реестра HKEY_CLASSES_ROOT.jntjntfile.

• .lnk – Ярлык.

• Folder – Папка.

Напомню, что вы можете удалить эти пункты из списка Создать, просто удалив подраздел ShellNew из ветви реестра вида HKEY_CLASSES_ROOT«расширение файла».

Пример создания пункта списка Создать. Попробуем добавить свой пункт к списку Создать. Например, реализуем возможность создания REG-файлов, ведь их структуру мы уже знаем. Итак, что нам дано? Искомый файл имеет расширение REG, значит, именно подраздел, имеющий название .reg, мы и должны искать в корневом разделе HKEY_CLASSES_ROOT. В данном подразделе нужно создать вложенный подраздел ShellNew. Затем следует определиться с параметром, который мы поместим в подраздел ShellNew. Здесь все зависит от того, что именно мы хотим получить. В нашем случае параметрами Command и Data пользоваться нецелесообразно. Параметр NullFile создаст файл с расширением REG. Это уже лучше, но беда в том, что этот файл внутри будет пустым, а хотелось бы, чтобы в нем сразу был указан заголовок REG-файла. Значит нужно создать шаблон REG-файла с необходимой информацией, а потом уже с помощью параметра FileName указать путь к этому шаблону.

Итак, создали. Но не спешите смотреть на содержимое списка Создать (оно все равно изменится только после перезагрузки). Лучше попробуем предположить, какой текст появится в этом списке. Для этого нужно посмотреть на параметр (По умолчанию) подраздела .reg. Он содержит название второго подраздела реестра, описывающего команды и свойства файлов с данным расширением. Вот этот подраздел нам и нужно найти, ведь именно его параметр (По умолчанию) будет использоваться для формирования строки списка Создать для расширения REG.

Конечно, приведенный выше пример не многим может пригодиться, ведь REG-файлы можно создать и простым экспортом из реестра. Однако есть и другие расширения файлов, команды для которых можно добавить. Например, если вы часто создаете INF-файлы, файлы сценариев Windows или CPP-файлы, то вам может быть удобнее раз и навсегда создать несколько шаблонов, вместо того чтобы каждый раз вводить одни и те же команды.

Контекстное меню файлов

В контекстное меню Проводника можно при необходимости добавить команды Копировать в папку и Переместить в папку, предназначенные для копирования либо перемещения соответственно требуемого файла в указанное место. По умолчанию эти команды не входят в состав контекстного меню Проводника, хотя изначально прописаны в операционной системе.

Чтобы включить команду Копировать в папку в контекстное меню Проводника, необходимо в разделе HKEY_CLASSES_ROOT-shellexContextMenuHandlers создать подраздел Copyto и присвоить параметру (По умолчанию) значение {C2FBB630-2971-11d1-A18C-00C04FD75D13} (рис. 2.12).

Рис. 2.12. Включение команды копирования в контекстное меню Проводника

Включение команды Переместить в папку в состав контекстного меню Проводника осуществляется аналогичным образом. Для этого необходимо в разделе реестра HKEY_CLASSES_ROOT-shellexContextMenuHandlers создать подраздел Moveto и задать параметру (По умолчанию) значение {C2FBB631-2971-11d1-A18C-00C04FD75D13}. Ниже приведен текст REG-файла (путь к файлу на диске – Файлы реестраИнтерфейсInterMoveto.reg), который следует импортировать в реестр для включения данной функции в контекстное меню Проводника.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT-shellexContextMenuHandlersMoveto]

@="{C2FBB631-2971-11d1-A18C-00C04FD75D13}"

После внесения указанных изменений в системный реестр команды Копировать в папку и Переместить в папку войдут в состав контекстного меню Проводника без перезагрузки компьютера: их можно увидеть, щелкнув на каком-либо файле правой кнопкой мыши (рис. 2.13).

Рис. 2.13. Добавленные команды в контекстном меню

Чтобы убрать данные команды из контекстного меню Проводника, достаточно в системном реестре удалить созданные подразделы Copyto и Moveto.

Если вы часто слушаете музыку с помощью Проигрывателя Windows Media, то вам могут понадобиться еще несколько стандартных команд контекстного меню, о доступе к которым разработчики забыли позаботиться. Этими командами являются Воспроизвести с помощью проигрывателя, Добавить в список проигрывателя Windows Media и Добавить в список записи. Лучше всего добавлять эти команды к контекстному меню папок, поэтому так мы и поступим.

• Воспроизвести с помощью проигрывателя Windows Media и Добавить в список проигрывателя Windows Media. К контекстному меню можно добавить сразу две команды. Первая аналогична предыдущей рассмотренной нами команде, а с помощью второй можно добавить все музыкальные файлы, находящиеся в соответствующей папке и ее подпапках, к списку воспроизведения открытого в данный момент Проигрывателя Windows Media. Чтобы добавить эту команду к контекстному меню папки, нужно создать подраздел {F1B9284F-E9DC-4e68-9D7E-42362A59F0FD} в ветви реестра HKEY_CLASSES_ROOTFoldershellexContextMenuHandlers.

• Воспроизвести с помощью Windows Media – открывает Проигрыватель Windows Media, загружает в него все музыкальные файлы, содержащиеся в папке, из контекстного меню которой была выбрана команда (а также все музыкальные файлы, содержащиеся в папках, вложенных в данную папку). Затем начинается воспроизведение первого музыкального файла из загруженных (или случайного файла, если включен соответствующий режим). Это очень удобная и полезная команда, ведь при ее использовании не нужно специально открывать проигрыватель и выбирать файлы – достаточно выделить несколько папок с музыкальными файлами, которые вы хотите сейчас послушать, и выбрать эту команду.

Чтобы добавить эту команду к контекстному меню папки, необходимо создать подраздел {CE3FB1D1-02AE-4a5f-A6E9-D9F1B4073E6C} в ветви реестра HKEY_CLASSES_ROOTFoldershellexContextMenuHandlers.

• Добавить в список записи – открывает стандартное окно Проигрывателя Windows Media на вкладке Запись. При этом в списке записываемых данных уже будут присутствовать музыкальные файлы, хранящиеся в соответствующей папке и ее подпапках.

Чтобы добавить эти команды к контекстному меню папки, нужно создать подраздел {8DD448E6-C188-4aed-AF92-44956194EB1F} в ветви реестра HKEY_CLASSES_ROOTFoldershellexContextMenuHandlers.

Управление отображением команды Отправить, которая также находится в контекстном меню Проводника и Рабочего стола (на рис. 2.13 она расположена под коман.56.  дой Переместить в папку), осуществляется в разделе реестра HKEY_CLASSES_ROOTAllFilesystemObjectsshellexContextMenuHandlersSend To. Для включения данной команды в состав контекстного меню Проводника следует присвоить параметру (По умолчанию) значение {7BA4C740-9E81-11CF-99D3-00AA004AE837}. Ниже приведен текст соответствующего REG-файла (путь к файлу на компакт-диске, прилагаемом к книге, – Файлы реестраИнтерфейсInterSendTo.reg).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTAllFilesystemObjectsshellexContextMenuHandlersSend To]

@="{7BA4C740-9E81-11CF-99D3-00AA004AE837}"

Чтобы убрать команду Отправить из контекстного меню Проводника, достаточно удалить значение параметра (По умолчанию). Все изменения вступают в силу без перезагрузки компьютера.

Окно Выбор программы

При попытке открытия файла с незарегистрированным расширением перед вами отобразится окно с предложением либо поискать описание программы для запуска файлов данного расширения в Интернете, либо вручную определить программу для запуска файлов соответствующего расширения (рис. 2.14).

Рис. 2.14. Открытие незарегистрированных файлов

Если вы никогда не пользуетесь возможностью поиска описания программы, предназначенной для запуска файлов, в Интернете, то можно убрать этот шаг запуска файлов незарегистрированных расширений и указать операционной системе, что она сразу должна отображать окно Выбор программы. Это окно предназначено для самостоятельного определения программы, с помощью которой будут запускаться файлы соответствующего расширения. Для этого нужно параметру REG_DWORD-типа NoInternetOpenWith, расположенному в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer, присвоить значение 1.

Список программ, отображаемых в окне Выбор программы, определяется с помощью подразделов ветви реестра HKEY_CLASSES_ROOTApplications. В данной ветви реестра хранится набор подразделов, названных в честь программ, – соответствующие этим подразделам программы как раз и будут отображаться в окне Выбор программы.

С помощью подразделов программ ветви реестра HKEY_CLASSES_ROOTApplications можно указать программы, которые никогда не будут отображаться в окне Выбор программы. Для этого достаточно в подразделе соответствующей программы создать параметр строкового типа NoOpenWith.

Поделитесь на страничке

Следующая глава >

it.wikireading.ru

Контекстное меню - это... Что такое Контекстное меню?

Пример контекстного меню на заголовке окна в GNOME

Конте́кстное меню́ (англ. context menu) в графическом интерфейсе пользователя — меню, набор команд в котором зависит от выбранного, или находящегося под курсором в момент вызова объекта, а также состояния рабочей среды и программы, в которой этот объект находится — то, что в совокупности представляет собой контекст для этого меню.

Вызов контекстного меню осуществляется как правило по нажатию «контекстной» (правой для правшей) кнопки мыши, специальной клавиши ( Menu ), или сочетания ( ⇧ Shift  +  F10  в Windows, или нажатие кнопки мыши при нажатой клавише  Control  в MacOS) на клавиатуре, а иногда — особыми жестами указывающего устройства (например — нажатием и удержанием).

Примечания

Ссылки

dic.academic.ru

Что такое контекстное меню Windows и как его настроить

Многим нравится операционная система Windows, и многие из нас выросли на ней. Но некоторые непостоянные пользователи ПК – или те, кто совсем недавно перешел на Windows – часто путаются в поисках информации о некоторых простых вещах, которые управляют операционной системой от Microsoft. Один из таких элементов графического элемента называется «контекстное меню Windows», или «меню правой кнопки мыши».

Сегодня мы расскажем вам не только об этом неотъемлемом элементе взаимодействия с Windows, но и о стороннем приложении, которое позволяет добавлять пользовательские элементы в контекстное меню.

Итак, что же такое контекстное меню Windows?

Говоря простыми словами, это всплывающее меню, которое появляется при нажатии правой кнопки мыши в любой навигационной области экрана (отсюда и название «меню правой кнопки мыши»). Доступ к контекстному меню можно получить в папках, на панели задач, в веб-браузерах и других областях графического интерфейса. Контекстное меню не является эксклюзивной особенностью Windows, так что вы могли видеть его и в других операционных системах, включая Mac OS X или Linux.

Говоря о внешнем виде контекстного меню Windows, то везде оно выглядит практически одинаково – отличаются лишь элементы внутри него. Например, на скриншоте ниже показано контекстное меню, которое открывается при щелчке правой кнопки мыши на рабочем столе, скажем, для настройки фонового изображения рабочего стола в окне «Персонализация».

Обычно контекстное меню несет в себе такие элементы, как «Вид», «Сортировка», «Копировать», «Вставить», «Переименовать», «Свойства» и т.д. Некоторые из пунктов меню основаны на контексте. Другими словами, в одной из областей операционной системы контекстное меню может содержать одни пункты, а в другой – уже другие. Например, меню, которые всплывает при щелчке правой кнопкой мыши на панели задач, будет содержать в себе совершенно другие пункты в сравнении с меню, которое вы видите на скриншоте ниже.

Вот еще один простой пример контекстного меню, которое появляется при щелчке правой кнопкой мыши на папке:

Теперь, когда вы узнали, что такое контекстное меню в Windows, и как оно работает, давайте рассмотрим удобное и бесплатное приложение, с которым можно легко настроить меню.

Context Menu Tuner

Портативное приложение Context Menu Tuner, которое позволяет добавлять пользовательские элементы в «меню правой кнопки мыши» в Windows 7, Windows 8 и Windows 8.1, было разработано Сергеем Ткаченко (WinAero) – известный разработчик, который является автором множества полезных инструментов, включая TakeOwnershipEx. Приложение очень удобно в том смысле, что весь процесс добавления пунктов в контекстное меню требует от пользователя нескольких нажатий.

Чтобы начать, запустите приложение. Интерфейс Context Menu Tuner состоит из двух различных панелей – левая содержит список поддерживаемых команд, а правая состоит из областей проводника Windows. Для добавления команды, нужно выбрать одну из них в левой панели, а затем, после выбора предпочитаемого элемента в правой панели, необходимо нажать на кнопку «Добавить». За удаление добавленных команд, как несложно догадаться, отвечает кнопка «Удалить».

Дополнительные функции приложения позволяют добавлять разделители до и после определенных пунктов меню. Кроме того, есть пара дополнительных опций.

Другая интересная особенность приложения заключается в его способности добавлять пользовательские команды для определенных типов файлов. Открыв окно «Выбрать тип файла», в которое можно попасть, нажав на кнопку «Добавить -> Добавить к указанному типу файла» в главном окне приложения, вы увидите впечатляющее количество поддерживаемых расширений файлов. Список очень длинный, поэтому, чтобы быстро найти конкретный тип файла, используйте поисковую строку.

На скриншоте ниже показано мое контекстное меню, которое я изменил с помощью Context Menu Tuner:

На этом все. Теперь вы знаете, что представляет собой контекстное меню Windows, и знаете простое решение для его редактирования.

compsch.com