Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prozessauslastung eines Programms ermitteln? (https://www.delphipraxis.net/119449-prozessauslastung-eines-programms-ermitteln.html)

Novo 26. Aug 2008 19:48


Prozessauslastung eines Programms ermitteln?
 
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;

SirThornberry 26. Aug 2008 19:54

Re: Prozessauslastung eines Programms ermitteln?
 
Woran genau scheiterst du denn? An welcher Stelle kommst du nicht weiter. Wir werden das Problem nicht für dich lösen sondern helfen dir lediglich wenn du ein konkretes Problem hast bei dem du nicht weiter kommst.

Im Moment ist mir dein Beitrag völlig Schleierhaft. Du hast einen Beitrag mit einem Titel und postest die Antwort auf deinen Titel im ersten Beitrag.
Im Beitrag schreibst du dann das du einen Prozess killen willst. Und ich kann mir nicht vorstellen das du zu diesem Thema nichts gefunden hast.

Novo 26. Aug 2008 20:40

Re: Prozessauslastung eines Programms ermitteln?
 
Zitat:

Zitat von SirThornberry
Woran genau scheiterst du denn? An welcher Stelle kommst du nicht weiter. Wir werden das Problem nicht für dich lösen sondern helfen dir lediglich wenn du ein konkretes Problem hast bei dem du nicht weiter kommst.

Im Moment ist mir dein Beitrag völlig Schleierhaft. Du hast einen Beitrag mit einem Titel und postest die Antwort auf deinen Titel im ersten Beitrag.
Im Beitrag schreibst du dann das du einen Prozess killen willst. Und ich kann mir nicht vorstellen das du zu diesem Thema nichts gefunden hast.

Ich sagte, das einzige, was ich bezüglich Prozessauslastung gefunden habe, war das (Code oben)
Aber damit kann ich doch nicht die Prozessauslastung eines Bestimmten Prozesses auslesen,
also ist das oben nicht das, was ich brauche!

omata 26. Aug 2008 21:26

Re: Prozessauslastung eines Programms ermitteln?
 
Hilfe benutzen... klick klick

Novo 26. Aug 2008 22:16

Re: Prozessauslastung eines Programms ermitteln?
 
Zitat:

Zitat von omata
Hilfe benutzen... klick klick

oh cool
bloss das is n riesen projekt un das kann dauern, das richtige für mich rauszusuchen
danke aber schonma

*AFK 4 Stunden, code studier*


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz