test

Erzeugung eines eigenen Protokoll-Handlers

Als 2. Möglichkeit haben wir uns die sogenannten “Protokoll-Handler” angesehen. Die Windows-Shell ermöglicht es, eigene Protokolle zu definieren, mit denen sich Programme mit einer URL-ähnlichen Syntax starten lassen. Das bekannteste Beispiel ist sicherlich der “http”-Handler, der dafür sorgt, dass es genügtunter,  Start->Ausführen eine URL einzugeben, um den Standard-Browser mit dieser URL zu starten.

Um einen Protokoll-Handler zu installieren, genügt es, diesen in der Registry einzutragen. Am einfachstenkann man das mit einer .reg-Datei mit einem Inhalt ähnlich dem folgendden erledigen:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\foo]
@="URL:foo Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\foo\shell\open\command]
@="\"C:\\Programme\\Anwendung\\Programm.exe\" \"%1\"

Nachdem die Einträge in der Registry kann der Aufruf unter Start->Ausführen getestet werden: Indem man in die Box “foo:bar” eingibt, wird das angegebene Programm gestartet.

Dies funktioniert nun auch im Browser: Mit einem Link lässt sich das lokal registrierte Programm starten.

Programm starten
IE

Diese Technik funktioniert mit allen gängigen Browsern. Nachteil ist, dass dem Programm als Parameter die gesamte “URL” übergeben wird, in unserem Beispiel wäre das also der komplette String foo:bar, und nicht nur der eigentliche Parameter bar. Aus diesem Grund haben wir einen Wrapper geschrieben, der das eigentliche Programm startet. Unsere Wahl fiel dabei auf AutoHotkey, da für die hierbei erzeugten Executables keine weitere Runtime mehr benötigt wird. Ein beispielhaftes AHK-Skript sieht dann so aus:

; Parameter aus der Befehlszeile abholen
parameter = %1%

; Protokoll-Handler (hier: foo:) entfernen
StringReplace, parameter, parameter, foo:

; Remote Control starten
run programm.exe -foo -bar %parameter

Mit dieser Methode funktioniert die Integration der benötigten Werkzeuge (z.B. PC-Fernwartung) in den Web-Arbeitsplatz browserübergreifend und mit den geringsten Eingriffen in die lokale Installation.

Mehr zu dieser Methode in der MSDN und im MozillaZine.

 
:start call iexplore.exe "http://www.google.de" sleep 30 kill iexplore.exe call iexplore.exe "http://www.n-tv.de" sleep 30 kill iexplore.exe goto start