Die
Unit "WinProcessInfo" erlaubt das Auslesen von Prozess- und Threadinformationen.
Es handelt sich um eine Zusammenstellung mehrerer Datenstrukturen und zugehörigen Ausleseroutinen, die neben den üblichen Prozessinformationen wie Speichernutzung, user und kernel mode Zählern auch Threadinformationen erschließen. Der Code basiert auf zusammengetragenen und nach Delphi übersetzten Snippets sowie eigenen Erweiterungen und greift auf zur Erstellungszeit weitgehend nicht offiziell dokumentierte ("undocumented
API") Funktionalität zurück. So lassen sich unter anderem folgende Funktionen realisieren oder wurden im Beispielcode schon berücksichtigt:
- Auflisten von pid, usertime, kerneltime, totaltime, threads, handles, Speichernutzung, io counters,
z.B.
Zitat:
Process Name ProcID Threads Handles Memory(kB)
Idle 0 1 0 0 kB
System 4 87 561 240 kB
smss.exe 512 3 20 372 kB
...
- Auflisten der geladenen Module eines Prozesses, z.B.
Zitat:
...
77D10000 : C:\WINDOWS\system32\user32.dll
77EF0000 : C:\WINDOWS\system32\GDI32.dll
5CF00000 : \Device\HarddiskVolume8\WINDOWS\system32\shimeng.d ll
6FD90000 : \Device\HarddiskVolume8\WINDOWS\AppPatch\AcGenral.
dll
...
- Auflisten der Aufrufparameterketten (paramstr() fremder Prozesse implementierbar). Mit dieser Funktionalität wurde auch das Beenden und Neustarten eines Prozesses mit erhaltener Aufrufparameterliste implementiert, was die ursprüngliche Motivation für die task manager - Anwendung war.
Zitat:
svchost.exe C:\WINDOWS\system32\svchost -k rpcss
svchost.exe C:\WINDOWS\System32\svchost.exe -k netsvcs
Smc.exe C:\Programme\Sygate\SPF\smc.exe
svchost.exe C:\WINDOWS\system32\svchost.exe -k NetworkService
svchost.exe C:\WINDOWS\system32\svchost.exe -k LocalService
...
Der Code ist einigermaßen vollständig und auf Funktionalität geprüft.