Как мне зарегистрировать пользовательский протокол URL в Windows? - PullRequest
46 голосов
/ 17 сентября 2008

Как зарегистрировать пользовательский протокол в Windows, чтобы при нажатии на ссылку в электронном письме или на веб-странице открывалось мое приложение и ему передавались параметры из URL?

Ответы [ 3 ]

26 голосов
/ 17 сентября 2008

Я думаю, что это покрыто MSDN, см. Регистрация приложения для протокола URL .

21 голосов
/ 05 июля 2016
  1. Перейдите на Start, затем в Find введите regedit -> должно открыться Registry editor

  2. Нажмите Правую мышь на HKEY_CLASSES_ROOT, затем New -> Key

enter image description here

  1. В Ключе укажите имя в нижнем регистре, по которому вы хотите, чтобы URL вызывался (в моем случае это будет testus://sdfsdfsdf), затем нажмите Правая мышь на testus ->, затем New - > String Value и добавить URL protocol без значения.

enter image description here

  1. Затем добавьте больше записей, как вы сделали с протоколом ( Правая мышь New -> Key) и создайте иерархию, например testus -> shell -> open -> command и внутри command измените (Default) на путь, по которому .exe вы хотите запустить, если вы хотите передать параметры в ваш exe, то оберните путь к exe в "" и добавьте "%1", чтобы он выглядел как : "c:\testing\test.exe" "%1"

enter image description here

  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();
        }
    }
}

Надеюсь, это сэкономит вам время.

19 голосов
/ 17 сентября 2008

Ссылка MSDN хороша, но информация о безопасности там не полная. Регистрация обработчика должна содержать «% 1», а не% 1. Это мера безопасности, поскольку некоторые источники URL-адресов некорректно декодируют% 20 перед вызовом обработчика пользовательского протокола.

PS. Вы получите весь URL, а не только параметры URL. Но URL может подвергаться некоторому плохому обращению, кроме уже упомянутого преобразования% 20-> space. Это помогает быть консервативным в вашем дизайне синтаксиса URL. Не добавляйте случайно //, или вы попадете в беспорядок, что файл: // is.

...