Home » Tipps & Tricks » System » Prozesse » Laufenden Prozesse ermitteln

Laufenden Prozesse ermitteln

Mithilfe folgende Procedure können alle laufenden Prozesse ermittelt werden. Als Parameter wird eine Liste, die vom Typ TStrings abgeleitet ist, erwartet. Diese Liste wird mit den jeweiligen Dateinamen gefüllt. Zusätzlich muss die Unit tlhelp32 eingebunden werden.

uses
 tlhelp32;

procedure GetProcessList(const aProcessList: TStrings);
var
  Snap: THandle;
  ProcessE: TProcessEntry32;
begin
  aProcessList.Clear;
  Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  try
    ProcessE.dwSize := SizeOf(ProcessE);
    if Process32First(Snap, ProcessE) then
      Repeat
        aProcessList.Add(ProcessE.szExeFile);
      Until not Process32Next(Snap, ProcessE)
    else
      RaiseLastOSError;
  finally
    CloseHandle(Snap);
  end;
end;

Hinweis für Benutzer bis Delphi 5: Ersetzen Sie RaiseLastOSError bitte durch RaiseLastWin32Error.Die Procedure läuft unter W98, WME, W2k und WXP. Aufgerufen werden kann die Procedure beispielsweise so:

procedure TForm1.Button1Click(Sender: TObject);
begin
 GetProcessList(listbox1.Items);
end;