Как запустить связанную программу при выборе более одного файла? - PullRequest
1 голос
/ 07 мая 2009

Я установил файл .jpg, связанный с моей собственной программой. Я хочу добавить контекстное меню к файлам .jpg, поэтому я установил для команды HKCR.jpg \ shell \ open \ значение myProg.exe% 1. После связывания в верхней части контекстного меню появится пункт «Открыть изображение с помощью myprog». Это работает правильно, когда я выбираю один файл .jpg, но когда я выбрал несколько файлов и щелкнул верхний элемент контекстного меню, ничего не произошло. Как я могу решить проблему?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 07 мая 2009

Каждый выбранный файл будет отправлен в новый экземпляр вашего приложения. Ваше приложение должно проверить, существует ли предыдущая версия или нет. Если предыдущий экземпляр существует, он должен отправить ему свои параметры (например, с помощью сообщений Windows) и затем завершить работу.

Другой подход - использовать DDE ( Dynamic Data Exchange ), старый метод, используемый Shell для отправки всех файлов в один экземпляр вашей программы.

0 голосов
/ 07 мая 2009

Возможно, вам понадобятся двойные кавычки вокруг "% 1".

Прочтите эту статью для более подробной информации о том, как все это работает. http://msdn.microsoft.com/en-us/library/bb776883.aspx

Кроме того, эта запись в блоге рассказывает о том, что вам нужно сделать специально для выполнения команды выбора нескольких элементов:

...