Come si registra un protocollo URL personalizzato in Windows?


Risposte:


63
  1. Vai a Startquindi nel Findtipo regedit-> dovrebbe aprirsiRegistry editor

  2. Fare clic Right Mousesu HKEY_CLASSES_ROOTquindi New->Key

inserisci qui la descrizione dell'immagine

  1. Nella chiave dare il nome minuscolo con cui si desidera che vengano chiamati gli URL (nel mio caso lo sarà testus://sdfsdfsdf) quindi fare clic Right Mousesu testus-> quindi New-> String Valuee aggiungere URL protocolsenza valore.

inserisci qui la descrizione dell'immagine

  1. Quindi aggiungi più voci come hai fatto con il protocollo ( Right Mouse New-> Key) e crea una gerarchia come testus-> shell-> open-> commande all'interno commandcambia (Default)il percorso in cui .exevuoi avviare, se vuoi passare i parametri al tuo exe, avvolgi il percorso in exe in ""e aggiungi "%1"per assomigliare a:"c:\testing\test.exe" "%1"

inserisci qui la descrizione dell'immagine

  1. Per verificare se funziona, vai su Internet Explorer(non Chromeo Firefox) e inserisci testus:have_you_seen_this_manquesto dovrebbe attivare il tuo .exe(darti alcuni suggerimenti che vuoi farlo - dì Sì) e passare in args testus://have_you_seen_this_man.

Ecco un'app console di esempio da testare:

using System;

namespace Testing
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args!= null && args.Length > 0)
            Console.WriteLine(args[0]);
            Console.ReadKey();
        }
    }
}

Spero che questo ti faccia risparmiare tempo.


3
Wow questa cosa funziona. E non solo su IE ma anche su Chrome!
user1974566

36

Penso che questo sia trattato in MSDN, vedere Registrazione di un'applicazione su un protocollo URL .


5
Stavo scrivendo l'applicazione basata su oauth e la procedura descritta in MSDN funziona perfettamente con Mozilla Firefox e Opera (11.6)
Viktor Latypov

11
Funziona in tutti i browser su Windows. È una cosa a livello di sistema operativo, non a livello di browser.
Andrew Dunkman

7
Ho votato positivamente, ma per favore modifica la risposta per includere le informazioni pertinenti dal collegamento come da politica SO. Grazie!
dotancohen

Quali versioni di Windows lo supportano?
ᆼ ᆺ ᆼ

21

Il collegamento MSDN è carino, ma le informazioni sulla sicurezza non sono complete. La registrazione del gestore dovrebbe contenere "% 1", non% 1. Questa è una misura di sicurezza, perché alcune origini URL decodificano in modo errato% 20 prima di richiamare il gestore del protocollo personalizzato.

PS. Otterrai l'intero URL, non solo i parametri URL. Ma l'URL potrebbe essere soggetto a maltrattamenti, oltre alla già citata conversione dello spazio% 20->. È utile essere prudenti nella progettazione della sintassi dell'URL. Non inserire // in modo casuale o finirai nel caos che è il file: //.


Cosa intendi esattamente con "pasticcio che il file: //" è?
Maleev,

6
Non esiste una mappatura formale del file: URL su percorsi locali. Non c'è nemmeno un consenso sull'uso di due o tre barre iniziali o sull'uso di barre in avanti e all'indietro quando il percorso si riferisce a una directory di Windows.
MSalters

Commento in ritardo, lo so. Ma è anche possibile in qualche modo accedere solo ai parametri URL , senza il gestore del protocollo?
Danilo Bargen

2
Sembra una domanda a parte. Per favore, chiarisci le tue condizioni. Il gestore del protocollo è il programma che riceve l'URL. "Senza il gestore del protocollo" non c'è nessuno che analizzi l'URL e acceda ai parametri dell'URL.
MSalters
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.