web-dev-qa-db-fra.com

Comment enregistrer un protocole URL personnalisé dans Windows?

Comment puis-je enregistrer un protocole personnalisé avec Windows afin que lorsque vous cliquez sur un lien dans un e-mail ou sur une page Web, mon application soit ouverte et les paramètres de l'URL lui soient transmis?

50
lukeck

Je pense que cela est couvert dans MSDN, veuillez voir Enregistrement d'une application dans un protocole URL .

27
Jonas Gulle
  1. Allez dans Start puis dans Find tapez regedit -> il devrait ouvrir Registry editor

  2. Cliquez sur Right Mouse sur HKEY_CLASSES_ROOT puis New -> Key

enter image description here

  1. Dans la clé, donnez le nom en minuscule par lequel vous souhaitez appeler les URL (dans mon cas, ce sera testus://sdfsdfsdf) puis clique Right Mouse sur testus -> puis New -> String Value et ajouter URL protocol sans valeur.

enter image description here

  1. Ajoutez ensuite d'autres entrées comme vous l'avez fait avec le protocole ( Right MouseNew -> Key) et créez une hiérarchie comme testus -> Shell -> open -> command et à l'intérieur command change (Default) vers le chemin où .exe que vous voulez lancer est, si vous voulez passer des paramètres à votre exe, puis envelopper le chemin vers exe dans "" et ajouter "%1" ressembler à: "c:\testing\test.exe" "%1"

enter image description here

  1. Pour tester si cela fonctionne, accédez à Internet Explorer (pas Chrome ou Firefox) et entrez testus:have_you_seen_this_man cela devrait déclencher votre .exe (donnez-vous des invites vous invitant à le faire - dites Oui) et passez à 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.

25
Matas Vaitkevicius

Le lien MSDN est sympa, mais les informations de sécurité ne sont pas complètes. L'inscription 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 complète, pas seulement les paramètres d'URL. Mais l'URL peut être soumise à des mauvais traitements, en plus de la conversion d'espace déjà mentionnée% 20->. Il est utile d'être prudent dans la conception de votre syntaxe d'URL. Ne jetez pas // de façon aléatoire ou vous vous retrouverez dans le désordre de ce fichier: //.

19
MSalters