Registriert seit: 27. Mai 2007
122 Beiträge
Delphi 7 Enterprise
|
Prozessauslastung eines Programms ermitteln?
26. Aug 2008, 20:48
Hey,
ich möchte von 1 oder 2 Prozessen die CPU Auslastung kontrollieren und falls diese über 90% hinausgeht, den Prozess killen!
Wie stelle ich das an?
Das einzige was ich gefunden habe war:
Delphi-Quellcode:
Prozessorauslastung anzeigen:
* Die Prozessorauslastung wird in der Registry unter HKEY_DYN_DATA gespeichert. Erst muss unter '\PerfStats\StartStat' die Überwachung aktiviert werden, dann können unter '\PerfStats\StatData' die Werte ausgelesen werden
* Quellcode:
uses registry
var
reg:TRegistry;
const pos:integer=0;
procedure TForm1.FormCreate(Sender: TObject);
var dummy:array[0..3] of byte;
begin
reg:=tregistry.Create;
reg.RootKey:=HKEY_DYN_DATA;
reg.OpenKey('\PerfStats\StartStat',false);
reg.ReadBinaryData('Kernel\CPUUsage',dummy,4);
reg.OpenKey('\PerfStats\StatData',false);
form1.image1.canvas.MoveTo(0,100);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var usage:DWORD;
begin
inc(pos,2);
reg.OpenKey('PerfStats\StatData',false);
reg.ReadBinaryData('KERNEL\CPUUsage', usage, 4);
form1.image1.canvas.LineTo(pos,100-usage);
label1.caption:=inttostr(usage);
end;
Takeo Don't make me angry...
You wouldn't like me when I'm angry!
Blut ist leben, Leben ist Blut, ins Licht geboren suchen wir die Dunkelheit!
|