Jak zarejestrować niestandardowy protokół w systemie Windows, aby po kliknięciu łącza w wiadomości e-mail lub na stronie internetowej moja aplikacja była otwierana, a parametry z adresu URL były do niej przekazywane?
Jak zarejestrować niestandardowy protokół w systemie Windows, aby po kliknięciu łącza w wiadomości e-mail lub na stronie internetowej moja aplikacja była otwierana, a parametry z adresu URL były do niej przekazywane?
Odpowiedzi:
Idź do, Start
a następnie Find
wpisz regedit
-> powinno się otworzyćRegistry editor
Kliknij Right Mousena HKEY_CLASSES_ROOT
potem New
->Key
testus://sdfsdfsdf
), a następnie kliknąć Right Mousena testus
-> następnie New
-> String Value
i dodać URL protocol
bez wartości.New
-> Key
) i utwórz hierarchię, taką jak testus
-> shell
-> open
-> command
i wewnętrzną command
zmianę (Default)
ścieżki, w której .exe
chcesz uruchomić, jeśli chcesz przekazać parametry do swojego exe, a następnie zawiń ścieżkę do exe w ""
i dodać "%1"
wyglądać:"c:\testing\test.exe" "%1"
Internet Explorer
(nie Chrome
lub Firefox
) i wprowadź testus:have_you_seen_this_man
to, co powinno uruchomić twój .exe
(dać ci kilka podpowiedzi, że chcesz to zrobić - powiedz Tak) i przejść do argumentów testus://have_you_seen_this_man
.Oto przykładowa aplikacja konsolowa do przetestowania:
using System;
namespace Testing
{
class Program
{
static void Main(string[] args)
{
if (args!= null && args.Length > 0)
Console.WriteLine(args[0]);
Console.ReadKey();
}
}
}
Mam nadzieję, że zaoszczędzi ci to trochę czasu.
Myślę, że jest to objęte MSDN, zobacz Rejestracja aplikacji w protokole URL .
Łącze MSDN jest fajne, ale informacje o zabezpieczeniach nie są kompletne. Rejestracja programu obsługi powinna zawierać „% 1”, a nie% 1. Jest to środek bezpieczeństwa, ponieważ niektóre źródła adresów URL nieprawidłowo dekodują% 20 przed wywołaniem niestandardowej procedury obsługi protokołu.
PS. Otrzymasz cały adres URL, a nie tylko jego parametry. Ale adres URL może być źle traktowany, poza wspomnianą już konwersją% 20-> space. Zachowaj ostrożność w projektowaniu składni adresu URL. Nie wrzucaj losowo //, bo wpadniesz w bałagan, jaki jest w pliku: //.