Страница: 1 |
Страница: 1 |
Вопрос: Передача параметров из проводника в приложение
Добавлено: 07.05.06 04:16
Автор вопроса: _ICE_ | ICQ: 354-671-214
Каким образом можно связать свою программу с определенным типом файла (это я знаю как, через реестр) и потом иметь возможность получать в программу список файлов, которые пытаются открыть при помощи этой программы (а вот это - проблемма, нигде не могу найти).
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #1
Добавлено: 07.05.06 10:51
Функцию Command не пробовал?
Номер ответа: 2
Автор ответа:
_ICE_
ICQ: 354-671-214
Вопросов: 18
Ответов: 103
Профиль | | #2
Добавлено: 07.05.06 16:02
Нет, а какой у нее синтаксис и как использовать? У меня задача - маленькая программка, которую нужно запустить выбрав пункт меню из проводника Windows, и этой программке даже не нужно знать какой файл щелкнули - достаточно будет имени папки, в которой этот файл находится.
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 07.05.06 19:38
от когда с меню прогу клацнули, или клацнули по файлу который ты ассоциировал в Form_Load пихни msgbox Command$ поймёшь что к чему...
Номер ответа: 4
Автор ответа:
_ICE_
ICQ: 354-671-214
Вопросов: 18
Ответов: 103
Профиль | | #4
Добавлено: 07.05.06 20:33
Спасибо, сейчас попробую.
Номер ответа: 5
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #5
Добавлено: 07.05.06 21:15
не забудь в реестре помимо пути указать ещё %1
Номер ответа: 6
Автор ответа:
_ICE_
ICQ: 354-671-214
Вопросов: 18
Ответов: 103
Профиль | | #6
Добавлено: 08.05.06 00:01
Да, попробовал, все заработало. Но здесь еще один финт: если выбрать открытие для нескольких файлов, то будет открыто столько же экземпляров программы, сколько и файлов. Конечно же можно ловить это и блокировать запуск второго экземпляра, но это же не спортивно... к тому же первый экземпляр получает сообщение только о первом файле из списка. В общем можно ли решить ЭТУ проблемму на уровне реестра? И еще - если один экземпляр программы уже запущен, а будет выбран пункт "Открыть", то как отловить эту ситуацию, чтобы запущенная программа знала о том, что пытаются открыть еще файлы? В общем такая вот задача...
Номер ответа: 7
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #7
Добавлено: 11.05.06 14:09
Да, можно. DDE. ПРимеров до ф!га
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 11.05.06 18:57
да никак наверное, в принципе... утот новый экземпляр, должен посмотреть что уже прога запущена, и передать ей команду (путь к файлу) на открытие ещё одного... и потом сам завершиться...
по поводу передачи через DDE, я бы не советовал...
проще всего при запуске проги, взять записать в реестр (или в файл) хендел какого-то текстбокса... остальные экземпляры буду читать этот хендел текстобкса и через SendMessage высылать текст (команду/путь к файлу итп...) этому текстбоксу... а у него в свою очередь будет происходить событие change... это и будет событие для открытия нового файла... просто в реализации, и без всяких таймеров, DDE и прочей фиги