Форум: "Начинающим";
Текущий архив: 2018.10.07;
Скачать: [xml.tar.bz2];
ВнизКонтекстное меню проводника Найти похожие ветки
← →
ford © (2016-08-26 09:50) [0]Доброго времени суток!
Хочу добавить в контекстное меню проводника возможность открывать свою программу и передать ей выделенные в проводнике файлы в качестве параметра(ов). Нашел что можно для типа фалов установить свою команду в реестре. Так и сделал:
HKEY_CLASSES_ROOT\FoxitReader.Document\Shell\contmenu\command
в дефолт парамере прописал свою программку и праметр %1
все ОК, но для одного файла.
Если я выбираю в проводнике группу файлов и взываю этот пункт из контекстного меню, то открывается столько копий моей программы, сколько я выбрал файлов.
Как сделать, чтобы при выборе в проводнике группы файлов, и запуске пункта контекстного меню, программа открывалась в одном экземпляре и файлы передавались туда списком?
Нашел что можно как-то через меню SendTо, но как? как программа получит этот список файлов? через drag"N"drop?
Подскажите плииз.
← →
sniknik © (2016-08-26 11:49) [1]> файлы передавались туда списком?
при получении параметра проверяй на наличие уже запущенной копии программы и посылай имя файла туда.
> SendTо
можно так
SendMessage(RunProgramHandle, WM_COPYDATA, 0, LParam(@name));
← →
sniknik © (2016-08-26 11:51) [2]> посылай имя файла туда.
собственно в программе (запущенной копии) должен быть "приемник" в котором формируется список. все плейеры так работают (ИМХО, других не видел).
← →
KSergey © (2016-08-26 13:10) [3]> sniknik © (26.08.16 11:49) [1]
> > файлы передавались туда списком?
> при получении параметра проверяй на наличие уже запущенной
> копии программы и посылай имя файла туда.
Вариант интересный.
Правда есть нюанс: для плейеров - да, достаточно всё в один список пихать.
А вот для e-mail клиента, например, нужно уметь разделять списки "отправленных в него" файлов. Т.е. выделил группу файлов - по ним одно письмо открылось с вложением; выделил другую группу - другое письмо должно суметь сформироваться.
По делу - не знаю что ответить.
← →
ford © (2016-08-26 14:24) [4]Сделал как подсказал
>>sniknik © (26.08.16 11:49) [1]
так единственный вариант без особых заморочек получился, хотя пришлось помучиться.
Т.к. первый экземпляр, открылся, взял переданный ему в параметре файл, и начал его обрабатывать, в это же время следующие экземпляры нашли окно, и передали ему имена файлов из своих параметров.
Но первая программа то уже занимается обработкой. Пишлось обработку запихнуть в поток, который при завершении обработки одного файла, опрашивает список файлов, и если там пусто то завершается.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.10.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c