Risposta molto tarda, ma stavo lavorando su questo da solo e ho scoperto che è effettivamente possibile eseguire un programma GUI da PHP con il server Apache su Windows XP.
- Start-> Esegui, digitare "services.msc" per far apparire il controllo Services (altri modi per arrivarci, questo è più facile IMO)
- individuare il servizio Apache (il mio è stato chiamato "wampapache" utilizzando WampServer 2.0)
- Aprire le proprietà del servizio (doppio clic o click destro-> proprietà)
- flip al Log On conto e garantire la casella di controllo dal titolo "Consenti al servizio di interagire con il desktop" viene controllato
- flip torna alla scheda Generale, interrompi il servizio, st art the service
Ora, utilizzando il codice seguente, è possibile generare processi UI da PHP. Nel primo snippet di codice, lo script non aspetterà che l'applicazione si chiuda; il secondo snippet attende che il programma si chiuda prima di continuare (bloccare).
Non aspettare per l'applicazione:
pclose(popen("start /B notepad.exe", "r"));
Attendere per l'applicazione:
system('start notepad.exe');
Questo è stato testato su Windows XP. Non l'ho provato su nessuna altra versione di Windows, il tuo millwork potrebbe variare.
Nota a margine Sul mio particolare installazione, stavo usando l'altra opzione nella Accedi scheda del servizio - Apache è in esecuzione come utente del dominio in modo che possa accedere a diverse parti della rete con le autorizzazioni utente di dominio. La casella di controllo non è disponibile per tale opzione, solo quando il servizio è in esecuzione come sistema locale. Dopo una lunga ricerca, ho scoperto che non c'è semplicemente alcun modo per un singolo servizio di interagire con il desktop corrente e utilizzare le credenziali di un utente specifico. Si tratta di una proposizione one-or-the-other, con il rimedio suggerito di dividere il servizio in due componenti: uno che utilizza i privilegi dell'account utente e uno che interagisce con il desktop. Non molto pratico quando il servizio di cui parli è il server web. Questa nota è probabilmente abbastanza specifica per il mio caso d'uso, ma volevo metterla qui nel caso in cui potessi salvare qualcun altro la frustrazione in futuro.
fonte
2011-11-17 15:46:33
Vedo cosa intendi. Hai ragione il blocco note è in esecuzione senza una GUI. (La mia configurazione è scaduta dopo 60 secondi.) Quindi non posso avviare un programma basato su GUI con PHP e ricorrere a soluzioni basate su OS. Buono a sapersi. Grazie ! – sdfor