.exe in html starten

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Es geht nur indirekt, wegen der Sicherheitsaspekte, die Roach5 angesprochen hat. Du mußt zunächst mal einen localhost (d.h. einen lokalen Webserver wie den Apache) bei Dir laufen lassen. Ein einfacher Weg dazu ist das Paket XAMPP.

Der Browser bekommt vom localhost eine HTML-Seite. Der Klick auf einen Button in dieser Seite ruft ein Serverskript auf (ein Programm z.B. in PHP oder in Perl, siehe CGI, das im lokalen Speicherbereich des Servers läuft). Das Skript ruft dann entweder das .exe auf oder ein weiteres Skript außerhalb des localhost, das das .exe aufruft

Achtung: Die Funktionen, mit denen man von Perl oder PHP externe Programme aufrufen kann, warten darauf, daß das .exe ihnen etwas zurückgibt, um es wieder auf einer HTML-Seite im Browser auszugeben. Gibt das .exe nichts zurück, dann wartet der Interpreter immer weiter. Um das zu verhindern muß man dann noch ein weiteres Programm außerhalb des localhost dazwischenschalten, das das .exe auslöst und irgendetwas an das Serverskript zurückgibt.

Von PHP aus sind für solche Sachen die Funktionen passthru, exec und system, sowie die backticks vorgesehen. Von Perl aus sind die Funktionen exec, system, qx und ebenfalls backticks geeignet. Wie man Perl im Webserver einsetzt, findest Du unter dem Stichwort CGI-Skript.

Also ich kann dir bestätigen, dass das eindeutig geht, sieht man ja auch an Sachen wie Battlefield Heroes oder Battlenet für Battlefield 3 oder Quakelive. Hierbei ist es aber nicht die Internetseite an sich, die das Spiel startet, sondern die Seite gibt ein Signal an das im Browser vorher installierte Plugin, eine .exe auszuführen. Bei allen großen Browsern kannst du aus sicherheitstechnischen Gründen keine Dateien auf dem Computer öffnen, das würde es Hackern doch wirklich viel zu einfach machen (die finden gerne andere Wege).