PHP. Есть ли возможность запуска GUI-программы через exec ()?

Мне нужно запустить веб-браузер (chrome – firefox ..), используя exec

Я попытался сделать это с помощью файла bat (этот метод упоминается здесь )

C:\Users\farok\AppData\Local\Google\Chrome\Application\chrome.exe www.google.com 

когда я открываю файл, используя окна, все идет хорошо, но ничего не происходит, когда я открываю его с помощью exec

и я попытался сделать это с помощью jar-файла с помощью класса BrowserControl

 BrowserControl.displayURL("www.google.com"); 

и то же самое, что и файл bat, так есть ли способ сделать это?

примечание: im, используя wamp 2.2, Apache 2.0, PHP V5.3.8

Обновить

я обнаружил, что после выполнения этой команды

 exec('"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "www.google.com" 2> errors.txt'); 

firefox доза открыта в диспетчере задач, но интерфейс браузера не виден .. любые идеи?

Я не эксперт по Windows, но я думаю, вам нужно разрешить desktop interaction , что нелегко / возможно, если родительский процесс работает как служба Windows. php запускается внутри процесса apache, который, вероятно, работает как служба.

Попробуйте остановить службу и вручную запустить httpd.exe , а затем следующее работает для меня на win7, когда я запрашиваю скрипт через URL-адрес localhost через apache. мои php-интерфейсы с apache через простой старый cgi.

 exec('"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "http://stackoverflow.com/"'); 

обратите внимание на мое использование цитат.

Вероятно, самый простой способ – использовать COM (я предполагаю, что он будет выполняться только локально на компьютере под управлением Windows):

 <?php function _exec($cmd) { $WshShell = new COM("WScript.Shell"); $oExec = $WshShell->Run($cmd, 0,false); echo $cmd; return $oExec == 0 ? true : false; } _exec("youexe.exe"); ?> 

Взято отсюда

Я решил, что отключив службу apache в Windows и запустив apache с httpd.exe После этого можно использовать exec () для открытия любой программы окон графического интерфейса пользователя.

 exec("Path_to_mi_program.exe" "file_to_open"); 

так что это еще один хороший способ обхода, который я нашел здесь , идея состоит в том, чтобы создать планировщик, который выполняет нужную вам программу, и называть ее с помощью команды

надеюсь эта помощь:

 shell_exec('SCHTASKS /F /Create /TN _notepad /TR "notepad.exe" /SC DAILY /RU INTERACTIVE'); shell_exec('SCHTASKS /RUN /TN "_notepad"'); shell_exec('SCHTASKS /DELETE /TN "_notepad" /F'); 

Это касается пользователей. Когда вы запускаете программу, она запускается как системный пользователь . Я попробовал runas /user:myusername blabla.exe но он вернул пароль для myusername и вышел.

 $deneme = shell_exec('runas /user:myusername C:\Windows\Temp\putty.exe'); echo "$deneme"; 

он вернулся:

 myusername için parolayı girin: (english: password for myusername)