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;