Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2009, 23:36   #1
Ragnarek
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 13
По умолчанию Передача параметров в программу и контекстное меню проводника

Здраствуйте. Я хотел бы узнать, как я могу встроить свой пункт в контекстное меню любого файла, а также директории (Win, естественно). Находил, что эта проблема решается 2-мя способами через COM и через реестр. Допустим, я сделаю это. Как потом мне обработать нажатие этого пункта меню? Дальше. Если я просто сделаю вместо контекстного меню, вариант открытия файла(любого) с помощью моей программы (Открыть с помощью... -> моя программа) как мне передать в запускающуюся МОЮ программу имя этого файла? НУ или вообще любой параметр.
Ragnarek вне форума Ответить с цитированием
Старый 27.01.2009, 00:26   #2
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

Цитата:
Если я просто сделаю вместо контекстного меню, вариант открытия файла(любого) с помощью моей программы (Открыть с помощью... -> моя программа) как мне передать в запускающуюся МОЮ программу имя этого файла? НУ или вообще любой параметр.
Код:
paramstr(0) = Application.ExeName;
paramstr(1) = имя файла, которое передаётся вашей программе...
вот насчёт остальных значений в paramstr пока не сильно знаю, так что говорить не буду.... надеюсь, кто-то более сведущий и мне пояснит как их правильно использовать
p.s. А насчёт того,чтобы встроить в меню проводника... вот у меня в подписи ссылка - посмотрите по ней, вроде где-то там похожее встречал....
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 27.01.2009, 02:22   #3
Ragnarek
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 13
По умолчанию

Спасибо, с параметрами разобрался, но как все-таки обработать нажатие пункта меню проводника? Никто не подскажет?
Ragnarek вне форума Ответить с цитированием
Старый 27.01.2009, 06:46   #4
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

я делал по не очень правильно, но работало... в оригинале нужно посылать сообщение программе и его обрабатывать дабы не допустить запуска 2го экземпляра программы (если нужно конечно) но я делал следующим образом: при открытии файлы через контекстное меню у меня программа создавала файл и потом проверяла его размер если он > 0 тогда я его открывал и обрабатывал... а если тебе нужно что бы открывалось несколько экземпляров твоей программы то делай как написали выше через paramstr(1)
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 27.01.2009, 06:47   #5
NioTo
Пользователь
 
Регистрация: 17.12.2007
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Ragnarek Посмотреть сообщение
Спасибо, с параметрами разобрался, но как все-таки обработать нажатие пункта меню проводника? Никто не подскажет?
По нажатию пункта меню проводника должна запускаться ваша программа с определенными параметрами, как обрабатывать параметры ты сказал, что разобрался. Вопрос в том полностью ли ты разобрался как делать свои пункты меня в проводнике...
NioTo вне форума Ответить с цитированием
Старый 27.01.2009, 08:31   #6
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Посмотри ... нашел в DelphiWorld 6
Вообще скачай себе DelphiWorld 6 и DRKB 3 - кладезь знаний ...
Вложения
Тип файла: zip DLL.zip (3.2 Кб, 77 просмотров)
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 27.01.2009, 08:51   #7
Zerone
++
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 92
По умолчанию

HKLM\SOFTWARE\Classes\Directory\she ll => здесь добавлял пункт нужной проги наприм HKLM\SOFTWARE\Classes\Directory\she ll\LA\command. в поддиректории cjmmand создаешь ключ с параметром c:\program files\LA\LA.exe %1
Пару строк кода и можно скок хош добавлять\удалять и тп=)
ITIL/ITSM
Zerone вне форума Ответить с цитированием
Старый 27.01.2009, 13:31   #8
Ragnarek
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 13
По умолчанию

Спасибо всем. По поводу добавления ключей в реестр: Вот этот параметр в конце строки (c:\program files\LA\LA.exe %1), что он означает? Или же я просто могу его обрабатывать как хочу? Как передать имя текущего файла в этот параметр:? Или это он и есть (просто сейчас нет времени проверить))):?

По поводу DelphiWorld: я еще вчера смотрел пример, но пока что не разобрался. ТАм он что-то отсылает в веб. Если бы было нечто подробное...
Ragnarek вне форума Ответить с цитированием
Старый 27.01.2009, 13:54   #9
Ragnarek
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 13
По умолчанию

так,с ключами реестра я так понял, программу можно запустить только (Открыть с помощью -> моя программа) параметр %1 это и есть файл))) значит только через DLL можно встроить пункт в меню любого файла?
Ragnarek вне форума Ответить с цитированием
Старый 27.01.2009, 14:25   #10
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

нет, можно и без DLL, и можно что бы было контекстное меню и твоя программа как у WinRar
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контекстное меню mar4elo Общие вопросы Delphi 19 18.09.2009 14:30
Контекстное меню (удалить строчку) Air Свободное общение 1 06.11.2008 21:56
Контекстное меню окон Ntlegend Общие вопросы Delphi 0 06.10.2008 19:06
Встраивание в контекстное меню проводника Никки Общие вопросы Delphi 3 25.06.2008 23:17
Контекстное меню файла... Altera Общие вопросы Delphi 3 29.02.2008 16:57