Как мне зарегистрировать настраиваемый протокол в Windows, чтобы при нажатии на ссылку в электронном письме или на веб-странице мое приложение открывалось, и ему передавались параметры из URL-адреса?
Как мне зарегистрировать настраиваемый протокол в 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
(дать вам несколько подсказок, которые вы хотите сделать это - скажите Да) и передать в args testus://have_you_seen_this_man
.Вот пример консольного приложения для тестирования:
using System;
namespace Testing
{
class Program
{
static void Main(string[] args)
{
if (args!= null && args.Length > 0)
Console.WriteLine(args[0]);
Console.ReadKey();
}
}
}
Надеюсь, это сэкономит вам время.
Я думаю, что это описано в MSDN, см. Регистрация приложения в протоколе URL .
Ссылка MSDN хороша, но информация о безопасности там не полная. Регистрация обработчика должна содержать «% 1», а не% 1. Это мера безопасности, потому что некоторые источники URL-адресов неправильно декодируют% 20 перед вызовом обработчика пользовательского протокола.
PS. Вы получите весь URL-адрес, а не только его параметры. Но URL-адрес может подвергнуться некоторому неправильному обращению, помимо уже упомянутого преобразования% 20-> space. Это помогает быть консервативным при разработке синтаксиса URL. Не добавляйте случайное // // или вы попадете в беспорядок, который есть у file: //.