If you try to launch GUI apps from a service in Vista, you'll have lots of trouble. As a security feature, Vista mediates the interaction of services with the desktop using 'Interactive Services Detection'.
That means, if you are running PHP as a module of an Apache service, you won't be able to launch GUI apps using any method. This kind of thing just won't work:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("notepad.exe", 7, false);
So, if you want to use Apache/PHP as a proxy for launching GUI apps, you'll need to run Apache as a console application.
First, if Apache is already installed as a service, you'll need to set it's startup type to "manual" using the services snap-in. (%SystemRoot%\system32\services.msc) Search for Services in the start menu search box.
Then add a shortcut to C:\apache\bin\httpd.exe (or wherever Apache is installed) to your Startup folder, and set that shortcut to start minimized. You can use an app like TrayIt! to force Apache down into the system tray.
Then use any of the methods outlined on the PHP website and you will be able to open a Windows application from PHP and see it's GUI.
Ausführung von Systemprogrammen
- Einführung
- Installation/Konfiguration
- Vordefinierte Konstanten
- Funktionen zur Programmausführung
- escapeshellarg — Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können
- escapeshellcmd — Maskiert Shell-Metazeichen
- exec — Führt ein externes Programm aus
- passthru — Führt ein externes Programm aus und zeigt dessen Ausgabe an
- proc_close — Schließt einen Prozess, der mit proc_open gestartet wurde und gibt den Exitcode dieses Prozesses zurück
- proc_get_status — Liefert Informationen über einen mit proc_open gestarteten Prozess
- proc_nice — Ändert die Priorität des aktuellen Prozesses
- proc_open — Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe
- proc_terminate — Beendet einen von proc_open gestarteten Prozess
- shell_exec — Führt ein Kommando auf der Shell aus und gibt den kompletten Output als String zurück
- system — Führt ein externes Programm aus und zeigt dessen Ausgabe an
Joe Engel ¶
4 years ago
