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?
windows
url
protocols
custom-url-protocol
lukeck
źródło
źródło
Odpowiedzi:
Idź do,
Start
a następnieFind
wpiszregedit
-> powinno się otworzyćRegistry editor
Kliknij Right Mousena
HKEY_CLASSES_ROOT
potemNew
->Key
testus://sdfsdfsdf
), a następnie kliknąć Right Mousenatestus
-> następnieNew
->String Value
i dodaćURL protocol
bez wartości.New
->Key
) i utwórz hierarchię, taką jaktestus
->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
(nieChrome
lubFirefox
) 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ówtestus://have_you_seen_this_man
.Oto przykładowa aplikacja konsolowa do przetestowania:
Mam nadzieję, że zaoszczędzi ci to trochę czasu.
źródło
Myślę, że jest to objęte MSDN, zobacz Rejestracja aplikacji w protokole URL .
źródło
Łą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: //.
źródło