Мне нужно запустить веб-браузер (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)