Einzelnen Beitrag anzeigen

4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#1

CPU Auslastung von Diensten / Services

  Alt 4. Apr 2017, 14:52
Delphi-Version: 10 Berlin
Hallo zusammen,

Habe mir mehrere Möglichkeiten angeschaut um die CPU Auslastung auszulesen,
aber bei jeder kriege ich von normalen Programmen die Auslastung, von Diensten jedoch nicht.
System: Windows 10 x64, meine Anwendung 32bit, der Dienst den ich auslesen will auch 32bit.
Der Dienst Hat auch permanent CPU Auslastung, so zwischen 15 und 20% (laut Windows 10 Taskmanager und Sysinternals Processmonitor)

diese Methode benutze ich grade :
http://www.delphipraxis.net/106890-c...-prozesse.html
Die PID habe ich zum testen, beim Aufruf hardcoded.

Als erstes muss die Anwendung aber über Admin-Rechte verfügen, sonst schlägt OpenProcess(...) fehl.

Ich denke der Fehler liegt in der Berechnung des eigendlichen Prozenzwertes,bzw gibt es bei Diensten vielleicht eine Besonderheit:
z.b: function GetCPUTimeForProcess(Process: TCPULOAD): Integer; .

lKernel = 6171
lUser 34515
dwTime 18528906

=(6171+34515)*100) div 18528906
=0,2195812316172363
=nach dem trunc logischerweise 0

Wenn ich die Formel auf
((lKernel+lUser)*100*100) div (dwTime) änder schaut es besser aus.
Aber da ich Null Ahnung von GetProcessTimes() habe, und auch nichts spezielles zu Diensten gefunden habe, dachte ich, ich frage mal euch
  Mit Zitat antworten Zitat