Чеботарев Игорь В статье о регистрации новых типов файлов (http://www.whatis.ru/reg/reg_n11.shtml) был рассмотрен вопрос о добавлении стандартного действия к файлам, которые не были определены в 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. Можете попробовать там покопаться, главное не забудьте предохраня... эээ, сохраняться! А если у вас что-то получится, напишите мне, я обязательно доработаю статью. Только зарегистрированные пользователи могут оставлять комментарии. Пожалуйста авторизируйтесь или зарегистрируйтесь. Опубликованные сообщения являются частными мнениями лиц, их написавших. Редакция сайта за размещенные сообщения ответственности не несет.Powered by AkoComment 2.0! |