如何在程序中检测另外一应用程序正在运行,并且运用什么方法可以终止该程序的运行? ( 积分: 5 )

  • 主题发起人 主题发起人 fsldg
  • 开始时间 开始时间
F

fsldg

Unregistered / Unconfirmed
GUEST, unregistred user!
例如:在一个程序中执行另一个程序,可以使用winexec,那么相应的,如何在程序中检测另外一应用程序正在运行,并且运用什么方法可以终止该程序的运行?
有没有什么API函数可用?
 
例如:在一个程序中执行另一个程序,可以使用winexec,那么相应的,如何在程序中检测另外一应用程序正在运行,并且运用什么方法可以终止该程序的运行?
有没有什么API函数可用?
 
用FINDWINDOW来查找运行程序的句柄,返回不为0为该程序在运行,再用SENDMESSAGE来发送关闭程序消息。常量为WM_close
 
可以说具体点吗?
 
我也在找答案
 
可以从使用任务管理器关闭程序过程中得到灵感。
我想首先要得到全部运行程序的名称,如果有你要的名称,说明该程序正在运行。
如果关闭则应得到该程序的句柄,再发送关闭的消息。
具体的代码没有,只有上面的思路,希望能帮助你。
 
var
hWndClose: HWnd; //定义一个窗口类变量
begin
hwndclose:=findwindow(nil,pchar('程序的标题'));//查找需要关闭的程序
sendmessage(hwndclose,wm_close,0,0);//发送关闭命令
end;
 
还有一个办法是,先找到窗口,然后通过纯种强行关闭。
var
RaHwnd: HWnd;
p: DWord;
begin
RaHwnd:=findwindow(nil,pchar('程序的标题'));
if RaHwnd<>0
GetWindowThreadProcessId(RaHwnd,@P);
if P<>0 then
TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,P),$FFFFFFFF);
 
后退
顶部