Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.10.07;
Скачать: CL | DM;

Вниз

Контекстное меню проводника   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.005 c
15-1474925401
Юрий
2016-09-27 00:30
2018.10.07
С днем рождения ! 27 сентября 2016 вторник


2-1471607982
Andrey K
2016-08-19 14:59
2018.10.07
Соединение по локальной сети


2-1472222559
Дмитрий
2016-08-26 17:42
2018.10.07
DBGridEh не хочет отображать галочку в поле TINYINT(1) MySQL


2-1471845533
Andrey K
2016-08-22 08:58
2018.10.07
Помогите разобраться с сетевым подключением.


2-1472194254
ford
2016-08-26 09:50
2018.10.07
Контекстное меню проводника