Entwickler-Ecke

Windows API - Prozessorauslastung


schlumsch - So 27.06.04 08:38
Titel: Prozessorauslastung
Hi,

habe mich ein wenig mit dem Auslesen der Systeminformationen unter Delphi beschäftigt und frage mich gerade ob ich auch die aktuelle Prozessorauslastung ermitteln kann. ... am besten dann mit Kombination einer Timerkomponente ständig aktualisiert *g*

Hat da wer Ahnung?


Thx, mfg Schlumsch


inselberg - Mo 28.06.04 09:48

da [http://groups.google.com/groups?hl=de&lr=&ie=UTF-8&selm=3ec2550b%241%40newsgroups.borland.com&rnum=4]


schlumsch - Mo 28.06.04 15:34

...dank dir mann


schlumsch


mystic - Do 24.08.06 00:01

Hi,

als Result kommt bei mir immer "1" heraus...was mache ich falsch ??

Hier der Aufruf:


Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Edit1.Text := inttostr ( TCpuMonitor.Create.GetCpuLoadPercent)   ;
end;


Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt


mkinzler - Do 24.08.06 00:04

Versuch mal:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button1Click(Sender: TObject);
begin
    with TCpuMonitor.Create do
    begin
        Edit1.Text := inttostr ( GetCpuLoadPercent);
    end;
end;


Martok - Do 24.08.06 00:23

Das ist Prinzipbedingt, da die Kompo die vorigen Werte zum Berechnen braucht. Daher darfst du das Objeckt nicht immer neu Createn, sondern eher so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
  private
    { Private-Deklarationen }
    cpm:TCPUMonitor;
....
procedure TForm1.FormCreate(Sender: TObject);
begin
  cpm:= TCpuMonitor.Create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := inttostr(cpm.GetCpuLoadPercent);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  cpm.Free;
end;


Sollte funktionieren (tuts jedenfalls bei mir ;) )

Gruß,
Martok