.exe in html starten
Ich werd durchs googlen nicht schlau. die einen sagen das geht, die anderen sagen, es geht nicht. dann ist es mal browserabhängig, mal liegts an der programmiersprache...
mein vorhaben: ich möchte mir einfach (vorzugsweise mit html) eine oberfläche erstellen, wo ich nur auf nen link oder ein bildchen klicke und schon startet zb. ein spiel von meiner festplatte aus. Klar gibt es alternativen wie den rocketlauncher aber ich möchte halt quasi meinen eigenen launcher im browser haben :P Vor 2 Jahren hab ich es schonmal in angriff genommen, mit photoshop hübsche icons für die programme und spiele gebastelt, die ich jetzt auch gerne verwenden möchte aber mit simpler verlinkung (href) auf die .exe klappte es nicht.
Fazit: 1. Kann man überhaupt .exen im browser starten wenn die nicht online sondern auf der festplatte sind? 2. falls ja, welche programmiersprache? 3. beispiele für ein script?;)
lg und danke :D
ps: hoffe mein textchen ist verständlich und nicht allzu wirr formuliert
2 Antworten
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).