Was mich nur stutzig macht, sind die negativen Werte die GetCPUUsage
zurück gibt??? Die Frage ist, ist das so gewollt, oder doch noch ein
weiterer Fehler ???
Zu den Zeiten, wenn GetCPUUsage negative Werte zurückgibt, zeigen alle anderen Programme 0 an, dementsprechend runde ich die Werte auf Minimal 0 auf:
Delphi-Quellcode:
procedure TTestForm.TimerTimer(Sender: TObject);
var
i: Integer;
Last: Double;
begin
CollectCPUData;
MInfo.Lines.BeginUpdate;
for i:=0 to GetCPUCount-1 do
begin
Last := GetCPUUsage(i)*100;
if Last < 0 then Last := 0;
if i=GetCPUCount-1 then //letzte CPU zeigt Durchschnitt (Gesamtlast)
MInfo.Lines[i+1]:=Format('Durchschnitt: %5.2f%%', [Last])
else
MInfo.Lines[i+1]:=Format('CPU #%d: %5.2f%%', [i, Last]);
end;
MInfo.Lines.EndUpdate;
end;