Форум: "Система";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
ВнизМеню файлов Найти похожие ветки
← →
eviruswork (2002-06-14 13:47) [0]Как я могу сделать в делфи, чтобы после нажатия правой кнопки мыши на файле вылазило меню с моей командой. Например, "Добавить в архив" - команда винрара? Заранее спасибо.
← →
Song (2002-06-14 14:02) [1]TPopupMenu.onPopup
← →
DaM (2002-06-14 18:57) [2]В смысле сделать так, чтобы всегда вызывалось в виндоузе твое меню или сделать только чтобы это было в твоей программе?
← →
Tahion (2002-06-15 16:01) [3]Зайди на webhowto.ru Там найди раздел про реестр! Вот одна из статей от туда:
В статье о регистрации новых типов файлов ( http://www.webhowto.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. Можете попробовать там покопаться, главное не забудьте предохраня... эээ, сохраняться! А если у вас что-то получится, напишите мне, я обязательно доработаю статью.
Кстати, если что-то непонятно, есть предложения или идеи - милости просим на форум! Мне же интересно знать ваше мнение о разделе :).
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c