Internet Explorer: eigene URL-Protokollhandler anlegen.

gepostet am 29.08.2013 um 12:08 Uhr

Vor kurzem stand ich vor dem Problem, dass es im Internet Explorer ein eigenes Protokoll geben soll, dass dann ein anderes Programm öffnet.

Die Lösung dafür ist denkbar einfach. Man muss sich nur ein wenig mit der Windows Registry auskennen.

Ok, erstmal wollen wir klären worüber ich hier überhaupt rede:

Wenn ihr eine URL aufruft, oder einen Link anschaut, dann hat der vor der eigentlichen Adresse immer ein Anhängsel. z. B. http://www.google.de. Dieses “Anhängsel sagt dem Browser, um welches Protokoll es sich handelt. In diesem Fall um ein HyperText Transfere Protocol.

Jetzt möchte man sich manchmal ein eigenes Protokoll erstellen, mit dem man dem Browser eigene Befehle geben kann. Als Beispiel möchte ich hier die Situation verwenden, in der ich zum öffnen einiger URL´s lieber Chrome verwenden möchte, anstatt den Internet Explorer. Dafür werde ich ein Protokoll mit dem Namen “openchrome” erstellen, und dieses direkt Chrome öffnen lassen. Dies kann ich dann z. B. über die URL openchrome://www.it-hellmann.de machen.

Dafür müssen wir dieses Protokoll eintragen. Das tun wir in der Registry von Windows. Dafür öffnen wir die regedit.exe und navigieren direkt in HKEY_CLASSES_ROOT. Dort legen wir einen Schlüssel an der genau so heißt wie unser Protokoll:

Unbenannt

 

Legt auch gleich die Struktur an, die wird noch benötigt. In dem Schlüssel “openchrome” muss ein neuer Wert angelegt werden. Dieser MUSS “URL Protocol” heißen, da der IE ihn sonst nicht als solchen erkennt:

Unbenannt

 

Im Schlüssel DefaultIcon gebe ich im Wert “Standard” den Pfad zur chrome.exe an, getrennt mit einem Komma dahinter die 1. Damit übergebe ich das Icon der chrome.exe an dieses Protokoll:

Unbenannt

 

Als letztes muss ich noch im Schlüssel shell\open\command den Pfad zur exe angeben:

Unbenannt

 

Als Parameter übergibt der IE hier die URL die wir eingegeben haben. In unserem Fall wäre das also openchrome://www.it-hellmann.de. Innerhalb unseres Wertes im Schlüssel command übergeben wir diesen Wert mithilfe der %1.

Soweit so gut, Aber in diesem Fall müssen wir weiter machen!

Chrome öffnet! Wir haben unser eigenes Protokoll geschaffen.

In diesem Fall können wir aber noch ein wenig weiter arbeiten. Denn Chrome öffnet, muss dann aber openchrome://www.it-hellmann.de öffnen, kennt das Protokoll nicht und öffnet einfach garnichts. Dafür habe ich mir eine kleine .NET Applikation (Console) gebaut und diese in das Verzeichnis von Chrome gelegt.

Sie macht nichts anderes als dass sie die übergebene URL nimmt, “openchrome://” durch “http://” ersetzt und dann die chrome.exe sucht und diese dann mit der neuen URL öffnet.

In der Registry muss ich nun in shell\open\command den Pfad zu meiner exe eintragen:

Unbenannt

 

 

Voila! Es funktioniert!

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.