Як зареєструвати користувальницький протокол у Windows, щоб при натисканні посилання в електронному листі чи на веб-сторінці мою програму було відкрито, а параметри з URL-адреси передані їй?
Як зареєструвати користувальницький протокол у Windows, щоб при натисканні посилання в електронному листі чи на веб-сторінці мою програму було відкрито, а параметри з URL-адреси передані їй?
Відповіді:
Перейдіть до type Startin -> воно має відкритисяFindregeditRegistry 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(not Chromeor Firefox) і введіть, testus:have_you_seen_this_manце має запустити ваш .exe(дасть вам деякі підказки, що ви хочете це зробити - скажіть Так) і перейти в аргументи 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-адреси. Але URL-адреса може зазнати певного поводження, крім уже згаданого перетворення% 20-> пробілу. Це допомагає бути консервативним у дизайні синтаксису URL-адреси. Не кидайте випадкові //, інакше ви потрапите в хаос, яким є файл: //.