Two examples how to quit processes in Windows.
KillProcess
The first method is to kill the process by name. You can do that with the following function.
procedure KillProcess(name: String);
var h:tHandle;
pe:tProcessEntry32;
sPrcName:string;
begin
h:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
try
pe.dwSize:=SizeOf(pe);
if Process32First(h,pe) then begin
while Process32Next(h,pe) do
begin
sPrcName:=pe.szExeFile;
if pos(LowerCase(name),LowerCase(sPrcName))>0 then
begin
TerminateProcess(OpenProcess(Process_Terminate, False, pe.th32ProcessID), 0);
end;
end;
end
else RaiseLastOSError;
finally
end;
end;
The „name“ parameter must be the process name, as shown in the task manager.
Send quit message to window
Another option is to send a Windows message to an application. This function can be used to close applications by the window name. It will first look up the window, get the application handle and then post the WM_QUIT message to that window.
function KillApp(const sCapt: PChar): boolean; var AppHandle: THandle; begin AppHandle:=FindWindow(Nil, sCapt); Result:=PostMessage(AppHandle, WM_QUIT, 0, 0); end;
