1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| Die Funktion beendet den Prozess, der mit übergebenen Exenamen übereinstimmt. Sollten mehrere Prozesse des selben Exenamens laufen, so wird der zuerst Gefundene geschlossen.
Wenn der Prozess erfolgreich beendet wurde, wird true zurückgegeben.
uses TLHelp32;
function KillTask(const AExeName: string): boolean; var p: TProcessEntry32; h: THandle; begin Result := false; p.dwSize := SizeOf(p); h := CreateToolHelp32Snapshot(TH32CS_SnapProcess, 0); try if Process32First(h, p) then repeat if AnsiLowerCase(p.szExeFile) = AnsiLowerCase(AExeName) then Result := TerminateProcess(OpenProcess(Process_Terminate, false, p.th32ProcessID), 0); until (not Process32Next(h, p)) or Result; finally CloseHandle(h); end; end;
procedure TForm1.Button2Click(Sender: TObject); begin if not KillTask('Project2.exe') then Showmessage('Prozess konnte nicht beendet werden.'); end; Bei diesem Code wird der Prozess ohne Rückfrage beendet. Dadurch kann es ggf. zu Datenverlusten kommen. |