Comment enregistrer un protocole URL personnalisé dans Windows?

Réponses:

63
  1. Allez Startensuite dans le Findtype regedit-> il devrait s'ouvrirRegistry editor

  2. Cliquez Right Mousesur HKEY_CLASSES_ROOTpuis New->Key

entrez la description de l'image ici

  1. Dans la clé, donnez le nom en minuscule par lequel vous voulez que les URL soient appelées (dans mon cas, ce sera le cas testus://sdfsdfsdf) puis cliquez Right Mousesur testus-> puis New-> String Valueet ajoutez URL protocolsans valeur.

entrez la description de l'image ici

  1. Ensuite, ajoutez plus d'entrées comme vous l'avez fait avec le protocole ( Right Mouse New-> Key) et créez une hiérarchie comme testus-> shell-> open-> commandet à l'intérieur, commandchangez (Default)le chemin où .exevous voulez lancer, si vous voulez passer des paramètres à votre exe, enroulez le chemin vers exe dans ""et ajouter "%1"pour ressembler à:"c:\testing\test.exe" "%1"

entrez la description de l'image ici

  1. Pour tester si cela fonctionne, allez à Internet Explorer(pas Chromeou Firefox) et entrez testus:have_you_seen_this_manceci devrait déclencher votre .exe(vous donner quelques invites que vous voulez faire - dites Oui) et passer dans args testus://have_you_seen_this_man.

Voici un exemple d'application console à tester:

using System;

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

J'espère que cela vous fera gagner du temps.

Matas Vaitkevicius
la source
3
Wow, cette chose fonctionne. Et pas seulement sur IE mais aussi sur Chrome!
user1974566
36

Je pense que cela est couvert dans MSDN, veuillez consulter Enregistrer une application sur un protocole URL .

Jonas Engström
la source
5
J'écrivais l'application basée sur oauth et la procédure décrite dans le MSDN fonctionne parfaitement avec Mozilla Firefox et Opera (11.6)
Viktor Latypov
11
Cela fonctionne dans tous les navigateurs sous Windows. C'est une chose au niveau du système d'exploitation, pas au niveau du navigateur.
Andrew Dunkman
7
J'ai voté pour, mais veuillez modifier la réponse pour inclure les informations pertinentes du lien conformément à la politique SO Merci!
dotancohen
Quelles versions de Windows prennent en charge cela?
ᆼ ᆺ ᆼ
21

Le lien MSDN est agréable, mais les informations de sécurité ne sont pas complètes. L'enregistrement du gestionnaire doit contenir «% 1», pas% 1. Il s'agit d'une mesure de sécurité, car certaines sources d'URL décodent incorrectement% 20 avant d'appeler votre gestionnaire de protocole personnalisé.

PS. Vous obtiendrez l'URL entière, pas seulement les paramètres d'URL. Mais l'URL peut faire l'objet de mauvais traitements, en plus de la conversion d'espace% 20-> déjà mentionnée. Il est utile d'être prudent dans la conception de la syntaxe de votre URL. Ne lancez pas au hasard // ou vous vous retrouverez dans le désordre qu'est file: //

MSalters
la source
Que voulez-vous dire exactement par "désordre que le fichier: //" est?
Maleev
6
Il n'y a pas de mappage formel du fichier: les URL aux chemins locaux. Il n'y a même pas de consensus sur l'utilisation de deux ou trois barres obliques principales, ou sur l'utilisation de barres obliques avant ou arrière lorsque le chemin fait référence à un répertoire Windows.
MSalters
Commentaire tardif, je sais. Mais est-il également possible d'accéder d'une manière ou d'une autre uniquement aux paramètres d'URL , sans le gestionnaire de protocole?
Danilo Bargen
2
Cela ressemble à une question distincte. Veuillez cependant clarifier vos conditions. Le gestionnaire de protocole est le programme qui reçoit l'URL. "Sans le gestionnaire de protocole", il n'y a personne pour analyser l'URL et accéder aux paramètres d'URL.
MSalters