![]() |
Liste aller Prozesse inkl. PID, User, CPU-Load, Speicher
Ich möchte in einem Programm eine Liste aller Prozesse ausgeben inklusive:
- PID - Benutzername des Prozesses - Prozessorbelastung jedes Prozesses - RAM je Prozess - virtueller Speicher je Prozess - Priorität Also Im Prinzip genauso, wie es auch im Windows Taskmanager getan wird. Doch wie realisiere ich dies? Hier immerhin schonmal ein Anfang, wobei ich mir nicht sicher bin, ob der Prozess mit PID 4 immer der Systemprozess ist. Der Leerlaufprozess wird momentan auch nicht angezeigt, da dessen Handle scheinbar Null ist.
Delphi-Quellcode:
procedure GetProcessList (var stringliste : tstringlist);
var PrIDs : Array [0..100] of DWORD; bia : DWORD; PrCount : Integer; ProzessHandle : HWND; Modulhandle : HWND; i : Integer; PrName : Array [0..255] of Char; begin stringliste:=TStringList.Create; if EnumProcesses(@PrIDs, SizeOf(PrIDs), bia) then if bia < sizeof(PrIDs) then begin PrCount:=Bia div SizeOf(DWORD); for i:=0 to PrCount do begin ProzessHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false, PrIDS[i]); if ProzessHandle <> 0 then begin EnumProcessModules(ProzessHandle, @ModulHandle, SizeOf(modulhandle), bia); GetModuleFilenameEx(Prozesshandle, ModulHandle, PrName, SizeOf(PrName)); if PrIDS[i] = 0 then PrName := 'Leerlaufprozess'; if PrIDS[i] = 4 then PrName := 'System'; stringliste.add(inttostr(PrIDS[i]) + ' ' +PrName) ; CloseHandle(ProzessHandle); end; end; end//if bia < sizeof... else RaiseLastOSError(); //if enumprocesses... end; |
Re: Liste aller Prozesse inkl. PID, User, CPU-Load, Speicher
Tja, und für welches OS so? Scheint ja keine Unterschiede mehr zu geben ...
Der Taskmanager benutzt diverse spezielle und undokumentierte Funktionen. Und noch mehr davon wenn er in einer TS-Session ausgeführt wird. Laut der API die du verwendest, vermute ich es ist für NT4 aufwärts? |
Re: Liste aller Prozesse inkl. PID, User, CPU-Load, Speicher
In der OpenSource-Sparte habe ich kürzlich eine entsprechende Klasse veröffentlicht.
|
Re: Liste aller Prozesse inkl. PID, User, CPU-Load, Speicher
Da wäre doch auch ein Link nicht zuviel, oder? :zwinker:
|
Re: Liste aller Prozesse inkl. PID, User, CPU-Load, Speicher
Ich habe es so schnell nicht gefunden. Aber etwas Eigeninitiative kann auch nicht schaden. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz