Ответ 1
Я думаю, что это описано в MSDN, см. Регистрация приложения в протоколе URL.
Как зарегистрировать пользовательский протокол в Windows, чтобы при нажатии ссылки в электронной почте или на веб-странице мое приложение было открыто и параметры из URL-адреса были переданы ему?
Я думаю, что это описано в MSDN, см. Регистрация приложения в протоколе URL.
Ссылка MSDN хороша, но информация о безопасности там не завершена. Регистрация обработчика должна содержать "% 1", а не% 1. Это мера безопасности, потому что некоторые источники URL неправильно декодируют %20 перед вызовом вашего настраиваемого обработчика протокола.
PS. Вы получите весь URL, а не только параметры URL. Но URL-адрес может подвергнуться некоторому плохому обращению, помимо уже упомянутого преобразования 20-20% пространства. Это помогает быть консервативным в дизайне синтаксиса URL. Не бросайте случайно//или вы попадаете в беспорядок в этот файл://is.
Перейдите к 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();
}
}
}
Надеюсь, это сэкономит вам некоторое время.