Как мне зарегистрировать настраиваемый протокол в Windows, чтобы при нажатии на ссылку в электронном письме или на веб-странице мое приложение открывалось, и ему передавались параметры из URL-адреса?
86
Как мне зарегистрировать настраиваемый протокол в Windows, чтобы при нажатии на ссылку в электронном письме или на веб-странице мое приложение открывалось, и ему передавались параметры из URL-адреса?
Ответы:
Перейдите к
Start
затемFind
введитеregedit
-> он должен открытьсяRegistry editor
Нажмите Right Mouseна
HKEY_CLASSES_ROOT
потомNew
->Key
testus://sdfsdfsdf
) , а затем нажмите Right Mouseнаtestus
-> затемNew
->String Value
и добавитьURL protocol
без значения.New
->Key
), и создайте иерархию, напримерtestus
->shell
->open
->,command
а внутриcommand
измените(Default)
путь, по которому.exe
вы хотите запустить, если вы хотите передать параметры в свой exe, затем оберните путь к exe в""
и добавьте,"%1"
чтобы выглядеть так:"c:\testing\test.exe" "%1"
Internet Explorer
(неChrome
илиFirefox
) и введите,testus:have_you_seen_this_man
это должно запустить ваш.exe
(дать вам несколько подсказок, которые вы хотите сделать это - скажите Да) и передать в argstestus://have_you_seen_this_man
.Вот пример консольного приложения для тестирования:
Надеюсь, это сэкономит вам время.
источник
Я думаю, что это описано в MSDN, см. Регистрация приложения в протоколе URL .
источник
Ссылка MSDN хороша, но информация о безопасности там не полная. Регистрация обработчика должна содержать «% 1», а не% 1. Это мера безопасности, потому что некоторые источники URL-адресов неправильно декодируют% 20 перед вызовом обработчика пользовательского протокола.
PS. Вы получите весь URL-адрес, а не только его параметры. Но URL-адрес может подвергнуться некоторому неправильному обращению, помимо уже упомянутого преобразования% 20-> space. Это помогает быть консервативным при разработке синтаксиса URL. Не добавляйте случайное // // или вы попадете в беспорядок, который есть у file: //.
источник