如何结束另一个程序的进程? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiAPI/html/delphi_20061116114828220.html
请问如何用Delphi程序结束另一个程序的进程?(请注意:是结束进程,而不仅仅是关闭程序)
SEND一个WM_CLOSE或WM_DESTROY消息到此进程去
或者用TerminateProcess结束进程
有具体的函数调用形式吗?或者请给一个实例,谢谢!
TerminateProcess(ProcessID,ExitCode);
ProcessID是进程ID,ExitCode是退出码;
TerminateProcess
返回值
Long,非零表示成功,零表示失败。
参数表
参数 类型及说明
hProcess Long,指定要中断的一个进程的句柄(相当于进程的PID)
uExitCode Long,进程的一个退出代码
用TerminateProcess就可以了.
uses Tlhelp32;
Function KillProcess(List:Array Of String):Boolean; Stdcall;
Var
s:String;
I, Fs, hKill:Integer;
FP:TProcessEntry32;
Begin
Result := False;
Fs := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FP.DwSize := SizeOf(FP);
If Process32First(Fs, FP) Then
Repeat
s := UpperCase(Trim(FP.szExeFile));
For I := Low(List)To High(List) Do
If s=UpperCase(Trim(List[I])) Then Begin
hKill := OpenProcess(PROCESS_TERMINATE, False, FP.th32ProcessID);
TerminateProcess(hKill, 0);//强制关闭进程
CloseHandle(hKill);
Result := True;
End;
Until Not(Process32Next(Fs, FP));
End;
KillProcess(['aaa.exe','bbb.exe']);