Diese Funktion beendet einen laufenden Prozess, der anhand des übergebenen Namens der EXE-Datei identifiziert wird und gibt TRUE zurück wenn erfolgreich. Wenn mehrere Prozesse laufen, die den gleichen EXE-Namen haben, dann wird nur der erste der gefunden wird beendet.
Da keine Abfrage kommt, empfehle ich dringend nur unkritische Prozesse auf diese Weise zu beenden – sonst droht Datenverlust.
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; //Beispielaktion procedure TForm1.Button1Click(Sender: TObject); begin if not KillTask('iexplore.exe') then Showmessage('Prozess konnte nicht beendet werden.'); end;