Einzelnen Beitrag anzeigen

Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#1

Prozessauslastung eines Programms ermitteln?

  Alt 26. Aug 2008, 19: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!
  Mit Zitat antworten Zitat