Добавляем собственные команды в контекстное меню Проводника



Дата05.09.2014
Размер48.7 Kb.
ТипДокументы
Добавляем собственные команды в контекстное меню Проводника

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

Однажды я уже рассказывал на Хабре, как можно добавить собственную команду в контекстное меню браузера Internet Explorer (Удобное дополнение к IE при написании обзоров / Internet Explorer / Хабрахабр). Сейчас я расскажу, как добавить свою команду в контекстное меню Проводника.

Информация о контекстном меню Проводника и Рабочего стола хранится в разделе реестра HKEY_CLASSES_ROOT\Directory\Background\Shell. Именно отсюда система узнает, какие команды нужно отобразить в контекстном меню и какие программы нужно запустить, когда пользователь щелкает по выбранной команде меню. Таким образом, вооружившись этими знаниями, мы сможем сами создавать нужные нам команды.

Итак, чтобы добавить новую команду в контекстное меню, достаточно создать в разделе HKCR\Directory\Background\Shell новый подраздел. Предположим, мы хотим, чтобы в меню появилась команда, запускающая стандартный Блокнот. Создаем подраздел notepad и сразу можем проверить и убедиться, что в контекстном меню Рабочего стола появилась одноименная команда. Нам даже не пришлось перезагружать компьютер. Естественно, такая команда не очень нас устраивает, и мы хотим задать собственный текст, например, Блокнотик. Для этого редактируем параметр по умолчанию созданного подраздела и записываем для него новое значение, которое мы хотим видеть, например, прописываем слово Блокнотик. Снова проверяем и убеждаемся, что в контекстном меню появилась наша команда.

http://s16.radikal.ru/i191/0912/73/335602d73678.jpg

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



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

  • Extended – при наличии данного параметра без значения говорит системе о том, что команда должна отображаться только при нажатии клавиши Shift. Вы можете посмотреть на подраздел HKEY_CLASSES_ROOT\Directory\Background\shell\cmd, в котором содержится такой параметр. Поэтому, если держать нажатой клавишу Shift, то в контекстном меню появится команда Открыть окно команд.

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

http://i002.radikal.ru/0912/cc/611251c3df70.jpg

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



Включение/выключения эскизов

Рассмотрим практический пример создания собственной команды в меню Проводника. Если вы предпочитаете просматривать файлы в режиме Значки, то заметили, что, например, значки картинок отображаются в виде эскизов. В настройках папки можно изменить данное поведение и отключить показ эскизов. Но включать или отключать эти настройки очень утомительно. Судите сами – сначала надо нажать на клавишу 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, используемое автором идеи – не самый лучший вариант, так как данная папка является защищенной и не нужно засорять ее собственными файлами. Поэтому, если вы будете использовать пример на своем компьютере, то переделайте его таким образом, чтобы файл сценария находился в более доступном для пользователя месте.



Удаление содержимого папки без удаления самой папки

Практически аналогично добавляется собственная команда и в контекстное меню папки. Недавно я нашел один пример применения контекстного меню папки в Проводнике — Add Empty Folder Contents to Windows 7 Right Click Context Menu. | The Windows Club.

Автор примера рассказывает, как добавить в контекстное меню папки команду для удаления содержимого папки без удаления самой папки. Т.е. вам не придется открывать папку, выделять все файлы и нажимать на клавишу Delete, достаточно выбрать команду Удалить содержимое папки. Я немного модифицировал пример, чтобы он более органично смотрелся на русской версии Windows.

Для этого добавляем в раздел HKEY_CLASSES_ROOT\Directory\shell подраздел DeleteFolderContent и создаем в нем строковый параметр MUIVerb со строкой Удалить содержимое папки. Далее в разделе DeleteFolderContent создаем подраздел command и в его параметре по умолчанию прописываем строчку:

cmd /c "cd /d %1 && del /s /f /q *.*"

Все готово и можете пользоваться примером.



Заключение

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

Похожие:

Добавляем собственные команды в контекстное меню Проводника iconТестовые материалы
Какая короткая запись соответствует запуску программы ms word через контекстное меню на рабочем столе?
Добавляем собственные команды в контекстное меню Проводника iconЧистим контекстные меню в Windows
После установки некоторых программ в контекстных меню появляются различные команды, не всегда нужные (тем более после того, как эти...
Добавляем собственные команды в контекстное меню Проводника iconА также цифровое поле — индикатор и клавиатуру. Меню Правка содержит только две команды: Копировать и Вставить
Калькулятор можно, выбрав одноименную команду в меню Стандартные стартового меню. Программа Калькулятор может быть использована двух...
Добавляем собственные команды в контекстное меню Проводника iconСочетания с нажатием кнопок мыши shift + Щелчок правой кнопкой
Открывает контекстное меню выделенного объекта. Нажатие этих клавиш эквивалентно правому щелчку мыши на объекте
Добавляем собственные команды в контекстное меню Проводника icon13 Главное меню (3D). Команды меню при работе с трехмерными моделями в Компас 3d lt главное меню трехмерного документа Деталь содержит следующие элементы
Главное меню трехмерного документа Деталь содержит следующие элементы (рис. 13. 1)
Добавляем собственные команды в контекстное меню Проводника iconЗакон Био-Савара-Лапласа
Гн/м); dl — вектор, равный по модулю длине dl проводника и совпадающий по направлению с током ( элемент проводника); I — сила тока;...
Добавляем собственные команды в контекстное меню Проводника iconВлияет ли на электроемкость проводника масса его, материал из чего сделан проводник? (Нет)
Электроемкость зависит от формы и площади поверхности проводника, так как проводник электризуется через влияние, электроемкость проводника...
Добавляем собственные команды в контекстное меню Проводника iconПереход на Microsoft sql server Express 2008 R2
Для создания резервной копии базы данных необходимо в программе Microsoft sql server Management Studio в левой части окна выбрать...
Добавляем собственные команды в контекстное меню Проводника iconИнструкция по охране труда для проводника пассажирского вагона тои р-32-цл-733-2000
К самостоятельной работе проводника допускаются лица не моложе 18 лет, прошедшие при
Добавляем собственные команды в контекстное меню Проводника iconЭлектроемкость уединенного проводника. Электроемкость конденсатора
Из формул электростатики 39 - 41 следует, что заряд q проводника и его потенциал
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org