notepad in php aufrufen
Hugo
- php
Hallo zusammen,
kann mir bitte jemand weiterhelfen und ein Bsp für den exec- Aufruf angeben, so dass ich notepad in winnnt starten kann.. oder über einen anderen Befehl- KEINE Ahnung. Ich würde gern den Text " Hallo Welt übergeben!".
Kann ich unter windows, apache mit php überhaupt eine exe starten? Oder eine selbstgenerierte dll??
Merci Hugo
Moin!
Hallo zusammen,
kann mir bitte jemand weiterhelfen und ein Bsp für den exec- Aufruf angeben, so dass ich notepad in winnnt starten kann.. oder über einen anderen Befehl- KEINE Ahnung. Ich würde gern den Text " Hallo Welt übergeben!".
Ich denke kaum, dass das möglich ist. PHP bietet ja keine interaktive grafische Benutzeroberfläche, sondern steuert lediglich die Ausgabe von Webseiten. Außerdem läuft PHP auf dem Server - der ist für die meisten Benutzer, die PHP-Ausgaben kriegen, unerreichbar.
Aber auch selbst wenn du auf dem Server surfst und auf localhost zugreifst: Wenn PHP Notepad startet, dann kann PHP leider nicht mit Maus und Tastatur Eingaben machen. Und du dürftest Notepad eigentlich gar nicht zu Gesicht bekommen, weil du (hoffentlich) ein ganz anderer User bist.
Kann ich unter windows, apache mit php überhaupt eine exe starten? Oder eine selbstgenerierte dll??
Du kannst. Du mußt aber bedenken, dass der Benutzer dieser EXE oder DLL PHP ist. Und PHP kann nicht interaktiv deine Applikation bedienen, sondern muß vorher wissen, welche externen Funktionen gebraucht werden und welche Daten sie kriegen sollen, und die Funktion muß ohne irgendwelche Interaktionen die Daten verarbeiten und zurückliefern.
Ein Aufruf von "traceroute (bzw. tracert)" zum Beispiel wäre möglich - die "Bildschirmausgabe" des Programms wird ohne Benutzereingriff an PHP zurückgegeben. Das Stoppen der Bildschirmausgabe mit "more" hingegen würde nicht funktionieren: PHP kann keine Taste drücken (und weil more das erkennt, hält es die Bildschirmausgabe erst gar nicht an).
- Sven Rautenberg
Hi Sven!
PHP bietet ja keine interaktive grafische Benutzeroberfläche, sondern steuert lediglich die Ausgabe von Webseiten.
Du kennst http://gtk.php.net/?
(habs aber noch nie selbst probiert)
Grüße
Andreas
Moin!
PHP bietet ja keine interaktive grafische Benutzeroberfläche, sondern steuert lediglich die Ausgabe von Webseiten.
Du kennst http://gtk.php.net/?
Nein. Aber das läuft dann anders: Kein HTTP-Server mit Browser dran, der die grafische Benutzeroberfläche realisiert, sondern das PHP-Skript läuft ohne Server direkt auf dem Client und stellt dann natürlich, genau wie Word, Acrobat Reader oder Irfanview, seine Ausgaben auf dem Bildschirm dar (wobei GTK irgendwie darauf hindeutet, dass es doch eher nur unter X-Window funktioniert, die Zielplattform also eher Linux/Unix ist).
Also: Grund dafür, warum es nicht geht, ist der HTTP-Kontext.
- Sven Rautenberg
Hi Sven!
(wobei GTK irgendwie darauf hindeutet, dass es doch eher nur unter X-Window funktioniert, die Zielplattform also eher Linux/Unix ist).
Im Manual steht zumindest:
"GTK+ wurde ausserdem auf BeOS und Win32 portiert, was es zur perfekten Wahl als Basis einer PHP Erweiterung macht, da es PHP so plattformübergreifend wie möglich hält und die Erstellung fensterbasierter Anwendungen in PHP für Linux, BeOS und Windows erlaubt."
Wobei man hiermit vermutlich genau dieselben Probleme hat andere Anwendungen zu öffnen, naja.
Also: Grund dafür, warum es nicht geht, ist der HTTP-Kontext.
Der HTTP-Kontext war(ist) mir nicht klar, wenn es denn über client-server gehen soll, dann sowieso nur über active-X oder solche Späße(Bugs im IE..., mit anderen Browsern wird gar nicht gehen, höchstens mit bugs in flash oder java ;-))
Viele Grüße
Andreas
Holladiewaldfee,
kann mir bitte jemand weiterhelfen und ein Bsp für den exec- Aufruf angeben, so dass ich notepad in winnnt starten kann.. oder über einen anderen Befehl- KEINE Ahnung. Ich würde gern den Text " Hallo Welt übergeben!".
Brbl ...
Also, starten kannst Du das prinzipiell einfach mit exec("c:\winnt\notepad.exe");
Danach wird's asslig. Wenn Du unbedingt einen Text in das höchstwahrscheinlich unsichtbare Notepad-Fenster schreiben willst - wie sinnig - dann
a) schreibe ihn vorher in eine Datei und übergebe die als Parameter
b) kompilier Dir in einer selbstmörderischen Aktion die Win32-API-Extension von PHP mit rein, hol Dir per API den Handle vom Fenster, finde dann raus, welches Element das Textfeld ist und schreib anschließend wieder über irgendeine API den Text rein (viel Spaß beim Rausfinden, welche APIs das sind). Ich weiß aber nicht, ob das so funktioniert, weil ich überhaupt keinen Plan habe, wie Windows mit Handlern von Fenstern umgeht, die eigentlich nicht da sind... argh.
Dann hast Du Dir insgesamt einige Stunden Arbeit gemacht, nur um rauszufinden, daß Du nicht siehst, ob das, was Du erreichen wolltest, auch wirklich passiert ist *g*
Außerdem gibt das keinen Sinn, sorry, aber das hat Dir Sven ja schon erklärt ;-)
Kann ich unter windows, apache mit php überhaupt eine exe starten? Oder eine selbstgenerierte dll??
Freilich, was hindert Dich daran?
Ciao,
Harry
Kann ich unter windows, apache mit php überhaupt eine exe starten? Oder eine selbstgenerierte dll??
Freilich, was hindert Dich daran?
Ich kanns nicht- ich hätte gern ein Beispiel, an dem ich sehen/beobachten kann, dass ein Fenster aufgeht, oder dass überhaupt irgendwas geschieht- vielleicht eine Datei, oder Archiv angelegt wird.
Vielen Dank
Hugo
Hi!
Ich kanns nicht- ich hätte gern ein Beispiel, an dem ich sehen/beobachten kann, dass ein Fenster aufgeht, oder dass überhaupt irgendwas geschieht- vielleicht eine Datei, oder Archiv angelegt wird.
Im Manual stehen eien agnze Menge Beispiele, unter anderem:
http://php.net/fwrite
Äquivalent funktioniert das ganze mit den entsprechenden zlib-Funktionen:
http://php.net/zlib
Grüße
Andreas