Изменение контекстного меню файлов и каталогов

Автор: Aport Вторник, Ноябрь 4th, 2014 Нет комментариев

Рубрика: Windows XP

В статье о регистрации новых типов файлов на сайте WinZone.ru был рассмотрен вопрос о добавлении стандартного действия к файлам, которые не были определены в Windows. Если интересно, то рекомендую сначала прочесть ту статью, чтобы легче было воспринять изложенное ниже. А в этой статье пойдет вопрос о добавлении к контекстному меню ВСЕХ файлов и папок каких-то действий. Вы, наверное, обратили внимание на новые пункты, появляющиеся при установке WinRAR’a. А вот как их добавлять самому? Аналогичный вопрос мне попадался на каком-то форуме, вот я и решил написать небольшое руководство :) . Интересно? Тогда поехали.

Конечно, можно попытаться добавлять к каждому расширению команду, но это сделать практически нереально (сколько всего править придется…). Но, есть способ лучше! В ветви HKEY_CLASSES_ROOT есть раздел с названием «*». Если в нем добавить пункт, то он будет применяться ко всем расширениям файлов. Давайте я попробую проиллюстрировать это на примере добавления пункта меню на архивацию файла.

Открывайте раздел HKEY_CLASSES_ROOT\*\ и создавайте там подраздел shell (у меня его не было). В нем надо создать подраздел с каким-то уникальным именем — я назвал его arj. В параметре «По умолчанию» этого раздела надо ввести название пункта меню, которое будет у вас выводиться на экране. Задаем «Архивировать ARJ». Теперь в разделе arj надо создать раздел command, в параметре «По умолчанию» которого надо ввести выполняемую команду, т.е. «arj a arc %1″. Здесь arc — имя нашего архива, а %1 — передает в качестве параметра имя файла, на котором мы кликнули мышкой. Конечно, здорово было бы создавать архив с именем выбранного файла, но я не знаю, как из передаваемого параметра вычленить это имя (оно передается вместе с путем, а это вызывает ошибку архиватора). Если кто-то знает, как это сделать и поделится информацией, я буду очень рад.

Для наглядности напишу, как это все будет выглядеть в reg-файле:

REGEDIT4
[HKEY_CLASSES_ROOT\*\shell\arj]
@=»Архивировать ARJ»
[HKEY_CLASSES_ROOT\*\shell\arj\command]
@=»arj a arc %1″

Что любопытно: если файл не зарегистрированного типа, то это действие будет использоваться для него по умолчанию. Т.е. вы можете щелкнуть по нему дважды мышкой, и файл будет автоматически заархивирован. Для зарегистрированных файлов этот пункт надо выбирать из контекстного меню. Таким образом можно сделать открытие незарегистрированных файлов в блокноте, достаточно ввести в параметр «По умолчанию» раздела command строку «notepad.exe %1″. Теперь по даблклику такие файлы будут автоматически открываться в блокноте!

А как же быть с каталогами? Их мы тоже не обойдем стороной. Ищите в HKEY_CLASSES_ROOT раздел Folder. Последовательность действий для него аналогична описанному выше. Только, лучше если вы используете команду «arj a arc %1 -r» чтобы архивировалось с сохранением дерева вложенных каталогов.

Теперь вы сможете модифицировать это меню под себя так, как вам будет удобно. Правда, есть и некоторые ограничения: вы сможете добавлять пункты только в первый блок меню (они разделяются горизонтальной линией). Добавление в другие блоки видимо, возможно, но как это сделать я не нашел. Дело в том, что у внешних программ, добавляющих туда пункт меню, используется в качестве параметра «По умолчанию» код CLSID для модуля ActiveX. Эти пункты добавляются в подраздел shellex. Можете попробовать там покопаться, главное не забудьте предохраня… эээ, сохраняться! А если у вас что-то получится, напишите мне, я обязательно доработаю статью.

 

Источник: winzone.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты