Laufenden Prozesse ermitteln |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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;
- Laufende Anwendung beenden
- Verwendung von CreateProcess
- Herausfinden, ob ein bestimmtes Programm gerade läuft
- Anwendung für eine bestimmte Zeit pausieren
- Mehrfachstart verhindern
- Programm vor dem Taskmanager verstecken
- Alle sichtbaren Fenster minimieren/wiederherstellen
- Ermitteln ob eine Exe-Datei läuft
- Auflisten aller Fenster
- Button klicken