使用php执行外部程序(如skype.exe)

时间:2014-05-26 12:52:44

标签: php exec popen external-process

我尝试使用php启动安装在C:\ Program Files(x86)\ Hewlett-Packard \ HP MyRoom \ MyRoom.exe中的外部应用程序。

样本1:  我使用exec功能和popen和系统。 但exec函数在关闭应用程序之前不会执行exec命令旁边的代码。

**CODE :** 
exec('"C:\Program Files (x86)\Hewlett-Packard\HP MyRoom\MyRoom.exe" ');

样本2: 当我使用popen时,它显示的是cmd窗口而不是应用程序。

CODE : 

pclose(popen('start   "C:\Program Files (x86)\Hewlett-Packard\HP MyRoom\MyRoom.exe" ' ,'r'));

OR

system(' start "C:\\Program Files (x86)\\Hewlett-Packard\\HP MyRoom\\MyRoom.exe"  ');

输出 enter image description here 样本3:

当我使用此代码时,它是返回字符串输出。

代码:

system(' start /B "C:\\Program Files (x86)\\Hewlett-Packard\\HP MyRoom\\MyRoom.exe"  ');

输出:

Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\xampp\htdocs\projects\drupal\hpedu\reference>
Any help would be greatly appreciated. 

样本4:

当我尝试使用此代码时,它不会返回任何内容。

代码:

  exec("start /B  \"C:\\Program Files (x86)\\Hewlett-Packard\\HP MyRoom\\notepad++.exe\\MyRoom.exe\"  ");

2 个答案:

答案 0 :(得分:2)

尝试

exec('"C:\Program Files\FileZilla FTP Client\filezilla.exe"');

因为它正在我的工作。

也是脚本停止执行尝试放一个"退出;"在exec命令之后。 如果你想执行exec命令后写的行,那么使用

exec('"C:\Program Files\FileZilla FTP Client\filezilla.exe"|at now'); 
echo "after quitting the program"; 

但只有在执行的程序关闭后才会起作用。

答案 1 :(得分:1)

即使您首先执行'login as admin'命令以确保您拥有管理员权限,也无法执行外部.exe文件,这将无法使用AFAIK。