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