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, Starta następnie Findwpisz regedit-> powinno się otworzyćRegistry editor
Kliknij Right Mousena HKEY_CLASSES_ROOTpotem New->Key
testus://sdfsdfsdf), a następnie kliknąć Right Mousena testus-> następnie New-> String Valuei dodać URL protocolbez wartości.New-> Key) i utwórz hierarchię, taką jak testus-> shell-> open-> commandi wewnętrzną commandzmianę (Default)ścieżki, w której .exechcesz 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 Chromelub Firefox) i wprowadź testus:have_you_seen_this_manto, 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: //.