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;