我想用PHP运行某exe程序(不要CRON等计划程序,PHP里还有其他内容。这里方便测试,以记事本为例),在其打开3秒后,执行关闭。如何操作?是否可以调用任务管理器将其关闭?求解决代码。谢谢。
<?php $cmd = 'C:/WINDOWS/system32/notepad.exe'; system($cmd); sleep(3); //$cmd1 = 'C:/WINDOWS/system32/taskmgr_original.exe'; //system($cmd1); ?> foolbirdflyfirst(龙腾虎跃 给出答案 popen是单向的,用proc_open吧试试看 /* * * windows only */ $descriptorspec = array ( 0 => array ( " pipe " , " r " ) , 1 => array ( " pipe " , " w " ) ); $cwd = ' C:/WINDOWS/system32 ' ; $process = proc_open ( ' notepad.exe ' , $descriptorspec , $pipes , $cwd ); $s = proc_get_status ( $process ); // 得到的信息都是父进程cmd.exe的状态,而非子进程notepad.exe的.所以不能直接kill掉这个process id sleep ( 3 ); exec ( ' taskkill /PID ' . $s [ ' pid ' ] . ' /T ' ); // 树型删除,删除所有父进程与对应的子进程.原来以为子进程id必定大于父进程,写了一通代码,后来发现不是,且找到了这个命令 proc_close ( $process );