开发环境:
Windows server 2012
apache2.4 + php5.6
启用dot_net扩展
大家好。 (首先,我很抱歉我的英语不好。)
我正在写一个小的PHP脚本。例如,当用户单击该按钮时,服务器执行c ++二进制文件,并将该程序PID返回给用户。
因为需要PID,所以我使用了COM对象。我的代码如下......
$com = new COM('WScript.Shell');
$com->CurrentDirectory = "d:\\git\\myProject\\release\\bin\\";
$exec = $com->Exec("returnPID.exe"); //
$pid = $exec->ProcessID;
echo $pid;
returnPID.exe一旦执行,它会在cmd窗口中显示其状态,直到它终止。 (这是Win32控制台应用程序。)
以上代码效果很好,用户没有任何不便。
但问题是,当我通过COM对象的Exec方法执行returnPID.exe时,returnPID应用程序不会在cmd窗口中显示有关其状态的任何信息。
如果我通过COM对象的'Run'方法执行returnPID应用程序,应用程序会在cmd窗口中正确显示其状态。但众所周知,Run方法不会返回PID。
我想知道returnPID应用程序没有显示其状态和分辨率的原因。
感谢您阅读我的问题。 : - )