我需要使用 exec 运行一个网络浏览器(Chrome - Firefox ..)
我尝试使用bat文件(此处提到的此方法)来执行此操作
C:UsersfarokAppDataLocalGoogleChromeApplicationchrome.exe www.google.com
当我使用 Windows 打开文件时,一切都很顺利,但是当我使用 exec 打开它时什么也没发生
我尝试通过浏览器控制类使用 jar 文件来做到这一点
BrowserControl.displayURL("www.google.com");
和蝙蝠文件一样,有什么办法可以做到吗?
注意:IM 使用 wamp 2.2 ,Apache 2.0 ,PHP V5.3.8
更新
我发现运行此命令后
exec('"C:Program Files (x86)Mozilla Firefoxfirefox.exe" "www.google.com" 2> errors.txt');
火狐剂量在任务管理器中打开,但浏览器界面不可见..有什么想法吗?
我不是 Windows 专家,但我认为您需要允许 desktop interaction
,如果父进程作为 Windows 服务运行,这并不容易/可能.php在 Apache 进程中运行,您可能已经作为服务运行。
尝试停止服务并手动启动 httpd.exe,然后当我通过 Apache 通过本地主机 URL 请求脚本时,以下内容在 win7 上对我有用。 我的PHP通过普通的旧CGI与Apache接口。
exec('"C:Program Files (x86)Mozilla Firefoxfirefox.exe" "http://stackoverflow.com/"');
注意我对引号的使用。
所以这是我在这里找到的另一个很好的解决方法,这个想法是创建一个执行所需程序并使用命令调用它的调度程序
希望这个帮助:
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');
我通过在Windows上禁用apache服务并使用httpd启动apache来解决这个问题.exe之后可以使用exec()打开任何GUI窗口程序。
exec("Path_to_mi_program.exe" "file_to_open");
可能最简单的方法是使用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");
?>
取自这里
这只是关于用户。运行程序时,它以系统用户身份运行。我尝试了runas /user:myusername blabla.exe
但它返回了myuserh和退出的密码。
$deneme = shell_exec('runas /user:myusername C:WindowsTempputty.exe');
echo "$deneme";
它返回:
myusername için parolayı girin: (english: password for myusername)