CPU Auslastung



  • ich scheine wie ein Scheißhaufen die Fliegen anzuziehen



  • Original erstellt von <"%"§"§$>:
    dann bringt mosta mal von den drogen runter damit er wieder klar denken kann. das ist doch lächerlich was er hier abzieht. 🕶

    ´Wer hier lächerlich ist, das bist du, du Wanze! 😮



  • Original erstellt von mosta:
    ich scheine wie ein Scheißhaufen die Fliegen anzuziehen

    *lol* Mach dir nix draus. Tu ich auch. 😃



  • Es scheint mir als wären wir hier alle ein bisschen lächerlich. :o



  • Webfritzi mein Prog

    und damit das ein ende hat ja wir sind lächerlich und laufen mit nem Finger im Po durch die Gegend ...

    doch sehen dabei noch lange nicht so scheiße aus wie ihr

    thx mosta

    [ Dieser Beitrag wurde am 20.02.2003 um 22:40 Uhr von mosta editiert. ]



  • Original erstellt von <"%"%"%"§>:
    Es scheint mir als wären wir hier alle ein bisschen lächerlich. :o

    Pass auf, man. Wir treffen uns im Chat und ich verprügel dich da. 🕶



  • Können wir mal wieder eine vernünftige Atmosphäre hier im WinAPI-Forum schaffen? Irgendwie beleidigen wir uns hier nur noch. 🙄



  • Original erstellt von mosta:
    **Webfritzi mein Prog
    **

    ich wollte nur nochmal dezent darauf hinweisen das du mein Prog nachdem Fehler durch suchen wolltest.



  • Äh ja. Habs mir noch nicht angeschaut.



  • ich warte schon die ganze Zeit ist zwar ziemlich unübersichtlich aber du solltest es finden.



  • Auf ein friedliches Winapi Forum, Streitschlichter! 🙂 🙂

    Bin auch dafür. Das Forum ist vom Niveau ja in der letzten Zeit richtig abgesunken. 🙄



  • ok vergeben und vergessen 🙂



  • das hab ich bei google gefunden:

    mfg

    ---------------------------------------------------------------------------
    // Funktion GetCpuUsage() liefert die CPU-Auslastung des Systems
    //---------------------------------------------------------------------------
    // Übergabeparameter:
    // Datentyp      -> enum TPerfAction { paStart, paStop, paGetData };
    //   paStart     -> Starten der Performance-Überwachung
    //   paStop      -> Beenden der Performance-Überwachung
    //   paGetData   -> für die Initialisierung der Performanceüberwachung
    //---------------------------------------------------------------------------
    // Rückgabewerte:
    // -1            -> Fehler aufgetreten
    // 0             -> Ausführung erfolgreich (bei paAction == paStop oder
    //                  paAction == paStart)
    // 0-100         -> CPU-Auslastung in % (bei paAction == paGetData)
    //---------------------------------------------------------------------------
    int GetCpuUsage(TPerfAction paAction)
    {
      int ilRetVal = 0;
      bool blError = false;
      int ilData = 0;
      DWORD lType = REG_DWORD;
      DWORD lSize = 4;
      HKEY hKey;
      AnsiString slKeyName = "PerfStats\\StatData";
      if(paAction == paStart) slKeyName = "PerfStats\\StartStat";
      else if(paAction == paStop) slKeyName = "PerfStats\\StopStat";
    
      blError = RegOpenKeyEx(HKEY_DYN_DATA, slKeyName.c_str(),  0,
        KEY_READ, &hKey) != ERROR_SUCCESS;
    
      if(!blError)
        blError = RegQueryValueEx(hKey, "KERNEL\\CPUUsage", 0,
          &lType, (BYTE*)(&ilData), &lSize) != ERROR_SUCCESS;
    
      blError = RegCloseKey(hKey) != ERROR_SUCCESS;
    
      if(!blError && paAction == paGetData) ilRetVal = ilData;
      else if(!blError) ilRetVal = 0;
      else ilRetVal = -1;
      return ilRetVal;
    }
    
    Anwendungsbeispiel
    
    Verwendete Komponenten:
    
      Formular       Form1
      TLabel         lblValue
      TLabel         lblInterval
      TProgressBar   ProgressBar1
      TTimer         Timer1
    
    Quellcode:
    
    //---------------------------------------------------------------------------
    // OnShow-Eventhandler des Formulars
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
      lblInterval -> Caption = FloatToStrF(double(TrackBar1->Position)/1000,
        ffFixed, 15, 1) + " S";
      Timer1->Interval = TrackBar1->Position;
    
      if(GetCpuUsage(paStart))
      {
        Timer1->Enabled = false;
        ShowMessage("Fehler beim Starten der Performance-Überwachung aufgetreten !");
      }
      else
      {
        Application->ProcessMessages();
        Timer1Timer(0);
        Timer1->Enabled = true;
      }
    }
    
    //---------------------------------------------------------------------------
    // OnTimer-Eventhandler des Timers
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
      // Daten holen:
      int ilCpuUsage = GetCpuUsage(paGetData);
    
      // Daten ausgeben:
      lblValue->Caption = (ilCpuUsage >= 0) ?
        AnsiString(IntToStr(ilCpuUsage)+ " %") : AnsiString("Fehler");
      ProgressBar1 -> Position = ilCpuUsage >= 0 ? ilCpuUsage : 0;
    }
    
    //---------------------------------------------------------------------------
    // OnClose-Eventhandler des Formulars
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
    {
      Timer1->Enabled = false;
      GetCpuUsage(paStop);
    }
    
    //---------------------------------------------------------------------------
    // OnChange-Eventhandler der TrackBar für die Interval-Einstellung
    //---------------------------------------------------------------------------
    void __fastcall TForm1::TrackBar1Change(TObject *Sender)
    {
      lblInterval -> Caption = FloatToStrF(double(TrackBar1->Position)/1000,
        ffFixed, 15, 1) + " S";
      Timer1->Interval = TrackBar1->Position;
    


  • ist aber glaub ich nur für WIN95 in Verbindung mit Microsofts sysmon.exe 😞



  • NtQuerySystemInformation() für W2K ,NT

    MfG Spacelord 🙂



  • SYSTEM_BASIC_INFORMATION
    SYSTEM_TIMEOFDAY_INFORMATION
    SYSTEM_PROCESS_INFORMATION
    SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
    SYSTEM_INTERRUPT_INFORMATION
    SYSTEM_EXCEPTION_INFORMATION
    SYSTEM_REGISTRY_QUOTA_INFORMATION structure.
    SYSTEM_LOOKASIDE_INFORMATION

    was soll ich davon benutzen kann mir aus den Texten dazu keinen reim machen



  • Ist etwas umfangreicher zumal du die benötigten struct's selber deklarieren musst weil es zur ntdll.dll keinen Header gibt.Hab heute leider keine Zeit mehr aber wenns bis morgen Zeit hat helf ich dir gerne weiter 🙂

    MfG Spacelord 🙂



  • Such über google. Da gibt es genug Informationen und Beispiele darüber.



  • SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION

    IdleTime

    Nur XP und 2000

    Mfg SytemPerformance



  • 🙂


Anmelden zum Antworten