Советы по Windows :Контекстное меню файлов и папок
Вы, наверное, обратили внимание на новые пункты контекстного меню файлов и каталогов, появляющиеся при установке архиватора WinRAR. А вот как их добавлять самому? Все делается довольно просто, особенно если вы прочитали предыдущий раздел. Только в этот раз мы будем добавлять пункт меню не для одного файла, а сразу для всех.
В разделе hkey_classes_root есть подраздел с именем * (без кавычек). Если для него добавить пункт контекстного меню, то он будет применяться ко всем расширениям файлов. Давайте попробуем добавить пункт меню на архивацию файла. Откройте раздел hkey_classes_root\*\ и создайте там подраздел shell (если его еще нет). В нем надо создать подраздел с каким-то уникальным именем (в примере используется название arj). В параметре По умолчанию этого раздела надо задать название пункта меню, которое будет выводиться на экране. Присвоим значение Архивировать arj. Теперь в разделе arj надо создать раздел command, в параметре По умолчанию которого надо ввести выполняемую команду, например arj a arc %i. Здесь arc — имя нашего архива, которое будет присваиваться по умолчанию, а %1 — передает в качестве параметра имя файла, контекстное меню которого мы открыли. Чтобы эта команда работала, необходимо поместить файл arj.exe s один из системных каталогов, перечисленных в переменной окружения Path, либо добавить имя каталога с файлом к каталогам в Path.
Рис. 4.12. Вкладка Дополнительно диалогового окна Свойства системы
Для добавления своего каталога нужно отредактировать значение переменной, щелкнув по кнопке Переменные среды на вкладке Дополнительно диалога Свойства системы (рис. 4.12). Откроется диалог Переменные среды (рис. 4.13), В области Системные переменные найдите переменную Path и дважды кликните по ней либо выделите ее и нажмите кнопку Изменить. Откроется диалог Изменение системной переменной, где в попе Значение переменной надо добавить через точку с запятой имя нужного каталога. На рис. 4,14 вы можете видеть пример такого каталога.
Для иллюстрации материала создадим reg-файл, вносящий все изменения в реестр (листинг 4.5). \ Листинг 4.5. Добавление нового пункта в контекстное меню файлов
REGEDIT4
; Пример добавления пункта в контекстное меню файлов
[HKEY_CLASSES_R0OT\*\shell\arj \command] 3=arj a arc %1
Файл с примером добавления пункта меню add_conL_menu.reg вы найдете на компакт-диске, прилагаемом к книге.
Что любопытно — если запустить файл не зарегистрированного типа, то это действие будет использоваться для него по умолчанию, т. е. вы можете щелкнуть по нему дважды мышью, и файл будет автоматически заархивирован. Для зарегистрированных файлов этот пункт надо выбирать из контекстного меню. Таким образом, можно сделать автоматическое открытие незарегистрированных файлов в Блокноте, достаточно ввести в параметр По умолчанию раздела command строку notepad.exe \%1\. Теперь по двойному щелчку такие файлы будут автоматически открываться в Блокноте.
Если вы все-таки хотите сделать открытие незарегистрированных файлов в Блокноте, лучше воспользоваться разделом HKEY_CLASSES_ROOT\unknown, который как раз отвечает за все эти файлы.
А как же быть с каталогами? Их мы тоже не обойдем вниманием. Ищите в hkey_classes_root раздел Folder. Последовательность действий для него аналогична описанному выше. Только лучше использовать команду arj a arc %l -г, чтобы архивирование происходило с сохранением дерева вложенных каталогов.
Таким образом вы сможете модифицировать контекстное меню файлов и каталогов под себя так, как вам будет удобно. Правда, есть и некоторые ограничения: вы сможете добавлять пункты только в первый блок меню (они разделяются горизонтальной линией). Добавление в другие блоки возможно, но это гораздо сложнее. Другие программы, добавляющие туда свои пункты меню, используют в качестве параметра По умолчанию код идентификатора класса (CLSID) для вызова dtl- или ехе-файла с целью обработки выбранного пункта меню. Эти пункты добавляются в подразделе sheiiex.
Добавление пунктов Копировать в папку... и Переместить в папку...
В предыдущем разделе упоминалось о добавлении пунктов контекстного меню в подраздел shellex реестра. В Windows уже заложено несколько дополнительных пунктов для расширения этого меню, не включенных по умолчанию (к сожалению, это работает только в Windows 2000 и Windows ХР).
В реестре в разделе hkey_classes_root\clsid есть два любопытных подраздела: {C2FBB630-2971-lldl-A18C-00C04FD75D13} И {C2FBB631-2971-lldl-
A18C-00C04FD75D13}. Они отвечают за возможность копирования и перемещения объекта в какой-нибудь каталог. Оба идентификатора класса можно включить в контекстное меню файлов и каталогов.
Рис. 4.15. Пункты Копировать в палку... и Переместить в папку...
в контекстном меню файлов
Для включения этих пунктов у всех файлов надо в разделе реестра HKEY_CLASSESjROOT\*\shellex\contextMenuHandlers создать подраздел copyto (имя может быть любое), в параметре По умолчанию которого следует записать значение идентификатора класса для копирования — (C2FBB63 0-297 i-ildl-Ai8c-00C04FD75Di3b Для перемещения создадим подраздел Moveto и запишем в параметре По умолчанию значение {c2FBB63i-297i-iidi-Ai8c-ooc04FD75Di3}. На рис. 4.15 можно увидеть результат добавления пунктов. Если вы хотите добавить эти пункты меню для каких-то определенных расширений файлов, то надо посмотреть, какой раздел указан в параметре По умолчанию в hkey_classes_root для данного расширения, и в разделе sheilex добавить пункты.
Рассмотрим это на примере текстовых файлов. Откройте соответствующий раздел реестра: bkey_classes_root\ . txt. Параметр По умолчанию ссылается
на раздел txtfiie. Переходим в раздел HKEV_cLASSES_ROOT\txtfile. Если там нет подраздела sheilex, создаем его, а в нем — раздел ContextMenuHan-diers. Дальше последовательность действий аналогична описанной выше.
Для добавления пунктов меню к каталогам надо добавить указанные подразделы В раздел HKEY_CLASSES_ROOT\Folder\shellex\CantextMenuHandlers.
Рис. 4.16. Диалог Перемещение элементов После выбора одного из пунктов в контекстном меню открывается диалог Копирование элементов (Перемещение элементов) (рис. 4.16). Копировать или перемещать файлы и каталоги гораздо удобнее с помощью этого диалога. В листинге 4.6 приведен пример reg-файла для добавления пунктов меню для всех файлов и каталогов (на диске вы найдете файл add_ext_menu.reg). \ Листинг 4.6. Добавление пунктов Копировать в папку... и Переместить в папку...
REGEDIT4
; Пример добавления пунктов Копировать в папку.., и Переместить в папку, . .
Если прочитаная статья из нашей обширной энциклопедия компьютера - "Советы по Windows :Контекстное меню файлов и папок", оказалась полезной или интересной, Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по статье через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!