Tech-Ecke / Delphi Inhalt / Anwendung/Prozess beenden/abschießen (Kill Process)

 

     Anwendung/Prozess beenden/abschießen (Kill Process)

 

   GetProcessID

Um einen laufenden Prozess beenden zu können benötigt man zunächst die ProcessID (PID), diese bekommt man so:

  function GetProcessID(Exename: string): DWORD; - benötigt tlhelp32 und  ShellAPI in uses!
var
   hProcSnap: THandle;
   pe32: TProcessEntry32;
begin
   result :=
0;
   hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,
0);
  
if hProcSnap <> INVALID_HANDLE_VALUE then
     
begin
         pe32.dwSize := SizeOf(ProcessEntry32);
        
if Process32First(hProcSnap, pe32) = true then
            begin
               while Process32Next(hProcSnap, pe32) = true do
                  begin
                    
if pos(Exename, pe32.szExeFile) <> 0 then
                        result := pe32.th32ProcessID;
                   end;
               end;
               CloseHandle(hProcSnap);
   end;
end;

Quelle: http://www.delphipraxis.net

   KillProcess

Um Prozess letztlich zu beenden kann man sich folgender Funktion bedienen:

  function KillProcess(PID: DWord): Bool;
var
   hProcess: THandle;
begin
   hProcess := OpenProcess(PROCESS_TERMINATE, False, PID);
   Result := TerminateProcess(hProcess,
0);
end;

Quelle: http://www.delphipraxis.net

   Syntax

Hat man beide Funktionen in sein Programm integriert, so lauter der Syntax zum Killen eines Prozesses wie folgt:

   KillProcess(GetProcessID('Programmname.exe'));

 

"Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !"

[letzte Aktualisierung 25.08.2008]