如何結束另一個程式的進程? Delphi / Windows SDK/API
http://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']);