Регистрация моего приложения в схеме URI и выбор команды, запустившей его - PullRequest
0 голосов
/ 23 апреля 2020

Windows позволяет мне зарегистрировать мое приложение в схеме URI, как определено здесь . Если приложение уже запущено, нажатие на URI должно вывести его на передний план. По какой-то причине GetCommandLineW () продолжает давать мне оригинальную команду, которая запустила приложение. Есть ли способ, которым я мог бы получить новый URI, который вывел мое окно на передний план.

Я знаю, Сообщения Win могут быть использованы для получения аргументов командной строки. Есть ли способ связать мои команды URI с сообщением о выигрыше.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\myapp]
@="URL:myapp"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\myapp\DefaultIcon]
@="<Path To App>,2"

[HKEY_CLASSES_ROOT\myapp\shell]

[HKEY_CLASSES_ROOT\myapp\shell\open]

[HKEY_CLASSES_ROOT\myapp\shell\open\command]
@="\"<Path To App>" \"%1\""

1 Ответ

0 голосов
/ 04 мая 2020

Во-первых, большое спасибо всем за ваши комментарии. Извините, я немного новичок ie, и мне потребовалось некоторое время, чтобы узнать asp то, что было заявлено с самого начала. Я оставлю этот комментарий здесь на тот случай, если кто-нибудь захочет вернуться.

Как и предполагалось, мое приложение запустило новое окно. Он нашел экземпляр моего приложения, которое уже запущено. И в результате прекращено. Что я изменил? Перед прекращением работы этого нового экземпляра я отправляю новое сообщение ранее запущенному экземпляру моего приложения. Чтобы передать содержимое командной строки, я использовал с именем shared memory .

Принимающее приложение только что прослушало это сообщение. Получив его, он извлекает командную строку из общей памяти и позволяет мне обрабатывать командную строку.

Еще раз спасибо.

...