我想用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
);