J'ai vu:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Quelle est cette première section où vous voyez http
et ainsi appelé?
Puis-je enregistrer le mien?
J'ai vu:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Quelle est cette première section où vous voyez http
et ainsi appelé?
Puis-je enregistrer le mien?
Réponses:
La partie la HTTP://
, FTP://
, etc. sont appelés schémas d' URI
Vous pouvez enregistrer le vôtre via le registre.
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
Sources: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml , http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
(Default)
signifie ici une chaîne vide. Ne le prenez pas au pied de la lettre.
Ouvrez le bloc-notes et collez-y le code ci-dessous. Remplacez «YourApp» par le nom de votre application. Enregistrez-le dans YourApp.reg et exécutez-le en cliquant dessus dans l'explorateur. C'est tout! À votre santé! Erwin Haantjes
REGEDIT4
[HKEY_CLASSES_ROOT\YourApp]
@="URL:YourApp Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\YourApp\DefaultIcon]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\""
[HKEY_CLASSES_ROOT\YourApp\shell]
[HKEY_CLASSES_ROOT\YourApp\shell\open]
[HKEY_CLASSES_ROOT\YourApp\shell\open\command]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\" \"%1\" \"%2\" \"%3\" \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\""
Ceci est différent pour chaque navigateur, dans IE et Windows, vous devez créer ce qu'ils appellent un gestionnaire de protocole enfichable.
Les étapes de base sont les suivantes:
Voir À propos des protocoles enfichables asynchrones sur MSDN pour plus de détails sur le côté Windows. Il existe également un exemple dans le SDK Windows.
Un rapide google a également montré cet article sur codeproject: http://www.codeproject.com/KB/IP/DataProtocol.aspx .
Enfin, en tant que responsable de la sécurité, je dois souligner que ce code doit être renforcé. C'est à haut risque car pour le faire de manière fiable, vous ne pouvez pas le faire en code managé et devez le faire en C ++ (je suppose que vous pourriez utiliser VB6). Vous devez vous demander si vous avez vraiment besoin de le faire et si c'est le cas, concevez-le soigneusement et codez-le en toute sécurité. Un attaquant peut facilement contrôler le contenu qui vous est transmis en incluant simplement un lien sur une page. Par exemple, si vous avez un débordement de tampon simple, personne ne fera mieux ceci:<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
Envisagez fortement d'utiliser strsafe et les nouvelles méthodes CRT sécurisées incluses dans les compilateurs VC8 et supérieurs. Voir http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx si vous ne savez pas de quoi je parle.
Voici une liste des schémas d'URI enregistrés . Chacun a un RFC - un document le définissant, qui est presque un standard. Le RFC indique aux développeurs de nouvelles applications (comme les navigateurs, les clients ftp, etc.) ce dont ils ont besoin pour prendre en charge. Si vous avez besoin d'un nouveau protocole de base, vous pouvez utiliser un protocole non enregistré. Les autres réponses vous expliquent comment. N'oubliez pas que vous pouvez faire beaucoup de choses avec les protocoles existants, gagnant ainsi leurs implémentations existantes.
Pour la plupart des produits Microsoft (Internet Explorer, Office, boîtes de dialogue "ouvrir un fichier", etc.), vous pouvez enregistrer une application à exécuter lorsque l'URI avec le préfixe approprié est ouvert. Ceci fait partie d'une explication plus courante - comment implémenter votre propre protocole.
Cela s'appelle le protocole. La seule chose qui vous empêche de créer votre propre protocole est que vous devez:
Windows rend le n ° 1 très simple, et dans de nombreux cas, c'est tout ce dont vous avez réellement besoin. Viz:
La première section s'appelle un protocole et oui, vous pouvez enregistrer le vôtre. Sous Windows (où je suppose que vous le faites compte tenu de la balise C # - désolé les fans de Mono), cela se fait via le registre .
Un protocole?
J'ai trouvé cela, il semble que ce soit un paramètre local pour un ordinateur ...
Vous n'avez pas vraiment besoin de vous inscrire comme tel. J'ai vu de nombreux programmes, comme emule, créer leur propre protocole spécifique (c'est ce que je pense que cela s'appelle). Après cela, il vous suffit de définir des valeurs dans le registre pour savoir quel programme gère ce protocole. Je ne sais pas s'il existe un registre officiel de spécificateurs de protocole. Il n'y a pas grand-chose pour vous empêcher de créer votre propre spécificateur de protocole pour votre propre application si vous voulez que les gens ouvrent votre application à partir de leur navigateur.