Сейчас я расскажу, как добавить свою команду в контекстное меню
Проводника.
Информация о контекстном меню Проводника и Рабочего стола хранится в
разделе реестра HKEY_CLASSES_ROOT\Directory\Background\Shell.
Именно отсюда система узнает, какие команды нужно отобразить в
контекстном меню и какие программы нужно запустить, когда пользователь
щелкает по выбранной команде меню. Таким образом, вооружившись этими
знаниями, мы сможем сами создавать нужные нам команды.
Итак, чтобы добавить новую команду в контекстное меню, достаточно
создать в разделе
HKCR\Directory\Background\Shell новый
подраздел. Предположим, мы хотим, чтобы в меню появилась команда,
запускающая стандартный Блокнот. Создаем подраздел notepad и
сразу можем проверить и убедиться, что в контекстном меню Рабочего стола
появилась одноименная команда. Нам даже не пришлось перезагружать
компьютер. Естественно, такая команда не очень нас устраивает, и мы
хотим задать собственный текст, например, Блокнотик. Для этого
редактируем параметр по умолчанию созданного подраздела и записываем для
него новое значение, которое мы хотим видеть, например, прописываем
слово Блокнотик. Снова проверяем и убеждаемся, что в контекстном
меню появилась наша команда.
Теперь настраиваем другие параметры, чтобы созданная команда реагировала
на щелчки мышью. Подраздел может содержать в себе другие вложенные
подразделы и различные параметры строкового типа. Сначала рассмотрим
параметры. Мы уже знаем, что параметр по умолчанию определяет название
команды. Также можно использовать следующие параметры (привожу только
часть возможных параметров):
- MUIVerb – значение данного параметра заменяет собой значение
параметра по умолчанию, т.е. мы можем в этом параметре задать имя для
команды в меню.
- Extended – при наличии данного параметра без значения говорит
системе о том, что команда должна отображаться только при нажатии
клавиши Shift. Вы можете посмотреть на подраздел HKEY_CLASSES_ROOT\Directory\Background\shell\cmd,
в котором содержится такой параметр. Поэтому, если держать нажатой
клавишу Shift, то в контекстном меню появится команда Открыть окно
команд.
Теперь перейдем к подразделам. Прежде всего, нужно создать подраздел command.
Параметр по умолчанию данного подраздела должен содержать в себе
команду, которая будет выполняться при выборе соответствующего элемента
контекстного меню. В нашем случае, нужно прописать команду notepad.exe.
Как видите, несколько несложных операций в разделе реестра и мы получаем
новую команду для контекстного меню Рабочего стола и Проводника. А зная
алгоритм создания новой команды, вы можете изучить и отредактировать
параметры от других программ, которые прописали свои разделы в вашей
системе.
Включение/выключение эскизов
Рассмотрим практический пример создания собственной команды в меню
Проводника. Если вы предпочитаете просматривать файлы в режиме Значки,
то заметили, что, например, значки картинок отображаются в виде эскизов.
В настройках папки можно изменить данное поведение и отключить показ
эскизов. Но включать или отключать эти настройки очень утомительно.
Судите сами – сначала надо нажать на клавишу Alt, чтобы появилась строка
меню у Проводника, далее выбираем меню Сервис | Параметры папок….
После этого нужно переключиться на вкладку Вид и поставить или
убрать флажок у команды Всегда отображать значки, а не эскизы.
Упростим задачу при помощи реестра и небольшого VBS-сценария, который
циклически меняет значения параметра IconsOnly в разделе HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced.
Создадим новый раздел ToggleThumb в разделе HKEY_CURRENT_USER\Software\Classes\Directory\Background\Shell
и присвоим параметру по умолчанию строковое значение Включить/Выключить
эскизы. Тем самым мы создали новую команду для контекстного меню
папки в Проводнике. Обратите внимание, что теперь мы используем раздел HKEY_CURRENT_USER,
чтобы действие примера распространялось только на одного пользователя.
Теперь создаем подраздел command и прописываем в параметре по
умолчанию строку wscript.exe "%WinDir%\togglethumbs.vbs". Далее
нужно создать сценарий, который будет переключать режим показа эскизов.
Set WshShell = CreateObject("Wscript.Shell") strValue = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\IconsOnly" strIconsOnly = WshShell.RegRead(strValue) If strIconsOnly = 0 Then WshShell.RegWrite strValue,1,"REG_DWORD" Else WshShell.RegWrite strValue,0,"REG_DWORD" End If WshShell.SendKeys "{F5}"
Сохраните созданный сценарий под именем togglethumbs.vbs и скопируйте
его в папку Windows.
Теперь вы можете открыть Проводники и проверить работу новой команды.
Для удобства я сначала выбрал режим Крупные значки, которые отображаются
в виде эскизов.
Далее я выбрал в контекстном меню пункт Включить/Выключить эскизы
и получил следующий результат – вместо эскизов я увидел значки
программы Adobe Photoshop, ознакомительную версию которой я поставил
несколько дней назад на своем компьютере.
Идею для данного примера я почерпнул со страницы http://www.winhelponline.com/blog/toggle-thumbnail-previews-right-click-menu-windows-vista-windows-7/
и немного модифицировал ее. Автор оригинального примера предлагает для
большего удобства воспользоваться готовыми REG-файлами создания
(togglethumbs.reg) и удаления (undo.reg) разделов для новой команды, а
также готовый сценарий (togglethumbs.vbs). От себя добавлю, что
копирование файла сценария в папку Windows, используемое автором идеи –
не самый лучший вариант, так как данная папка является защищенной и не
нужно засорять ее собственными файлами. Поэтому, если вы будете
использовать пример на своем компьютере, то переделайте его таким
образом, чтобы файл сценария находился в более доступном для
пользователя месте.
Удаление содержимого папки без удаления самой папкиПрактически аналогично добавляется собственная команда и в контекстное
меню папки. Недавно я нашел один пример применения контекстного меню
папки в Проводнике.
Автор примера рассказывает, как добавить в контекстное меню папки
команду для удаления содержимого папки без удаления самой папки. Т.е.
вам не придется открывать папку, выделять все файлы и нажимать на
клавишу Delete, достаточно выбрать команду Удалить содержимое папки.
Я немного модифицировал пример, чтобы он более органично смотрелся на
русской версии Windows.
Для этого добавляем в раздел
HKEY_CLASSES_ROOT\Directory\shell
подраздел DeleteFolderContent и создаем в нем строковый параметр MUIVerb
со строкой Удалить содержимое папки. Далее в разделе DeleteFolderContentcommand и в его параметре по умолчанию
прописываем строчку:
создаем подраздел
cmd /c "cd /d %1 && del /s /f /q *.*"
Все готово и можете пользоваться примером.
Заключение
Хочу предупредить, что я рассказал про основные приемы создания команд в
контекстном меню Проводника. Реестр — достаточно сложная штука и
существуют другие способы работы с контекстном меню.
Как видите, вы можете самостоятельно настроить контекстное меню
Проводника. Все зависит от вашей фантазии. Если вам нужна дополнительная
информация о параметрах реестра, то можете скачать электронный
справочник Реестр Windows на портале.
|