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

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

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

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

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

Для этого достаточно присвоить параметру 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.

Данный текст является ознакомительным фрагментом.