Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.007 c
1-85021
NikolayFirst
2002-08-16 12:02
2002.08.26
BDE Administrator


1-85124
jessis
2002-08-15 11:55
2002.08.26
Параметр в командной строке


8-85132
ec
2002-04-16 16:51
2002.08.26
Вопрос по PaintBox y


1-85047
Александр
2002-08-13 23:48
2002.08.26
Определение существования ключа в реестре не работает


14-85252
Григорий Ситнин
2002-07-29 13:22
2002.08.26
тихая инсталляция Oracle Client 8





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский