Как мне зарегистрировать настраиваемый протокол в 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: //.