Создание собственных команд для контекстного меню Проводника и Рабочего стола
Создание собственных команд для контекстного меню Проводника и Рабочего стола
Мы знаем, как удалять или редактировать некоторые команды из контекстного меню Проводника и Рабочего стола. Настало время научиться создавать свои собственные команды. Информация о контекстном меню Проводника и Рабочего стола хранится в разделе реестра HKCRDirectoryBackgroundShell . Именно отсюда система узнает, какие команды нужно отобразить в контекстном меню и какие программы нужно запустить, когда пользователь щелкает по выбранной команде меню. Таким образом, вооружившись этими знаниями, мы сможем сами создавать нужные нам команды.
Для добавления новой команды в контекстное меню, достаточно создать в разделе HKCRDirectoryBackgroundShell новый подраздел. Предположим, мы хотим, чтобы в меню появилась команда, запускающая стандартный Блокнот. Создаем подраздел notepad и сразу можем проверить и убедиться, что в контекстном меню Рабочего стола появилась одноименная команда.
Естественно, такая команда не очень нас устраивает, и мы хотим задать собственный текст, например Блокнотик.
Для этого редактируем параметр по умолчанию созданного подраздела и записываем для него новое значение, которое мы хотим видеть, например, прописываем слово «Блокнотик» (рис. 4.24).
Проверяем и убеждаемся, что в контекстном меню появилась команда Блокнотик (рис. 4.25). Пункт меню мы добавили, но щелчок по нему пока ни к чему полезному не приводит. Для того чтобы новый пункт меню не только отображался, но и работал, нам понадобится настроить еще некоторые параметры.
Подраздел notepad может содержать в себе другие подразделы и различные параметры строкового типа. Сначала рассмотрим параметры. Мы уже знаем, что параметр по умолчанию определяет название команды. Также можно использовать следующие параметры:
? MUIVerb – значение данного параметра заменяет собой значение параметра по умолчанию, то есть мы можем в нем задать имя для команды в меню.
? Extended – наличие данного параметра без значения говорит системе о том, что команда должна отображаться только при нажатии клавиши Shift . Вы можете посмотреть на подраздел HKCRDirectoryBackgroundshellcmd , в котором содержится такой параметр. Поэтому, если держать нажатой клавишу Shift , в контекстном меню появится команда Открыть окно команд .
? LegacyDisable – присутствие данного параметра запрещает отображение в контекстном меню создаваемой команды. Правда, тогда не понятно, зачем вообще создавать команду, если ее не нужно выводить на экран.
? ProgrammaticAccessOnly – присутствие данного параметра так же запрещает отображение в контекстном меню создаваемой команды, разрешая только программный доступ к ней.
? NoWorkingDirectory – наличие данного параметра говорит о том, что при работе программы (если команда контекстного меню запускает программу) не нужно указывать рабочий каталог программы.
Теперь перейдем к подразделам. Прежде всего, нужно создать подраздел command . Параметр по умолчанию данного подраздела должен содержать в себе команду, которая будет выполняться при выборе соответствующего элемента контекстного меню. В нашем случае нужно прописать команду notepad.exe (рис.4.26).
Как видите, несколько несложных операций в реестре – и мы получаем новую команду для контекстного меню Рабочего стола и Проводника. А зная алгоритм создания новой команды, вы можете изучить и отредактировать параметры других программ, которые вы прописали в операционной системе.
Включение/выключения эскизов
Рассмотрим практический пример создания собственной команды в меню Проводника.
Если вы предпочитаете просматривать файлы в режиме Значки, то заметили, что, например, значки картинок отображаются в виде эскизов. В настройках папки можно изменить данное поведение и отключить показ эскизов.
Включать или отключать эти настройки очень утомительно. Судите сами – сначала надо нажать клавишу Alt , чтобы появилась строка меню у Проводника, далее выбираем меню Сервис ? Параметры папок... . Теперь нужно переключиться на вкладку Вид и поставить или убрать флажок у команды Всегда отображать значки, а не эскизы . Упростим задачу при помощи реестра и небольшого VBS-сценария, который циклически меняет значения параметра IconsOnly в разделе HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced .
Создадим новый раздел ToggleThumb в разделе HKCU SoftwareClassesDirectoryBackgroundShell и присвоим параметру по умолчанию строковое значение Включить/ Выключить эскизы . Тем самым мы создали новую команду для контекстного меню папки в Проводнике. Обратите внимание, что теперь мы используем раздел HKCU , чтобы действие примера распространялось только на одного пользователя.
В только что созданном подразделе ToggleThumb cоздаем подраздел command и прописываем в параметре по умолчанию строку wscript.exe «%WinDir% ogglethumbs.vbs» (рис. 4.27).
Теперь создадим сценарий, который будет переключать режим показа эскизов.
Листинг 4.1. Сценарий для включения и выключения эскизов
Set WscripthShell = CreateObject(«WScript.Shell»)
strRegPath = «HKCUSoftwareMicrosoftWindowsCurrentVersion ExplorerAdvancedIconsOnly»
strParIconsOnly = WscripthShell.RegRead(strRegPath)
If strParIconsOnly = 0 Then
scripthShell.RegWrite strRegPath,1,"REG_DWORD"
Else
scripthShell.RegWrite strRegPath,0,"REG_DWORD"
End If
WscripthShell.SendKeys «{F5}»Сохраните сценарий под именем togglethumbs.vbs и скопируйте его в папку Windows.
Теперь можно открыть Проводник и проверить работу новой команды. Для удобства я сначала выбрал режим Крупные значки , которые отображаются в виде эскизов (рис. 4.28).
Далее я выбрал в контекстном меню пункт Включить/Выключить эскизы и получил следующий результат – вместо эскизов я увидел значки программы Adobe Photoshop, ознакомительную версию которой я поставил несколько дней назад на своем компьютере (рис.4.29).
Данный текст является ознакомительным фрагментом.