tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
380
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Hallo ich suche einen Ouellcode womit ich die prozessorauslastung in % auslesen kann!
    Ich hoffe das ist nich alzu schwer!
    Ich verwende MSVC++ und KEIN .NET Framework in diesem Projekt
    danke im Voraus
    p.s. bitet da auch net wiklich was brauchbares!
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    ich kann nicht beurteilen, ob es mit Deinem MSVC++ klappt, aber ich habe just vor einigen eine Funktion geschrieben, die der DOS-Befehl TASKLIST nutzt :
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    
    /*****************************************************************************************
     *  FUNCTION    : bool COrgaServerHelperFunc::fGetSpeicherInKB()                         *
     *---------------------------------------------------------------------------------------*
     *  DESCRIPTION : Ermittelt die momentane Speicherauslastung des brechnungsservers  *
     *                                                                                       *
     *  ARGUMENT    : None                                                                   *
     *  RETURN      : long - Speicherwert in KB ('0' im Fehlerfall)                          *
     *****************************************************************************************/
    long COrgaServerHelperFunc::fGetSpeicherInKB()
    {
        CFileException e;
        long lRes = 0;
     
        string strCMD = "tasklist > c:/TMP.txt";
        int iSys = system( strCMD.c_str() );
        if( iSys == 0 )
        {
            // ############################################################################################
            // zuerst die Datei einlesen, dann Speicherwert in der Zeile bestimmen und als long zurückgeben
            // ############################################################################################
            char *pszFileName = "C:\\TMP.txt";
            
            CStdioFile hFile;
            CStringUtils strUt;
            
            if( hFile.Open( pszFileName, CFile::modeRead|CFile::shareDenyNone, &e) )
            {
                char cZeile [100];
                while( hFile.ReadString(cZeile,100) )
                {
                    strUt.trim( cZeile );
                    char cSuchwert[23];
                    memcpy( &cSuchwert, &cZeile[0], 22 );
                    cSuchwert[22] = 0;
                    string strSuchwert = string( cSuchwert );
                    if( strSuchwert.compare("GSCRMSERVER_ABRECHNUNG") == 0 )  // Name der gesuchten exe-Datei !!
                    {
                        string strZeile = string( cZeile );
                        char cSpeicherWert[14];
                        memcpy( &cSpeicherWert, &cZeile[60], 13 );
                        cSpeicherWert[13] = 0;
                        lRes = atol( cSpeicherWert );  // Rückgabewert setzen
                        break;
                    }
                }
                hFile.Close ();
            } 
        }
     
        return lRes;
    } // fGetSpeicherInKB

    Musst mal mit dem DOS-Befehl unter CMD spielen

    Hoffe, Du kannst damit was anfangen!
    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    cool danke aber welche header dateien muss ich einbinden****
     

  4. #4
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.358
    Blog-Einträge
    4
    Mit welcher Bibliothek arbeitest du, vfl_freal?
    Die Klassen mit den 'C's am Anfang erscheinen mir von MFC zu sein.

    Edit:
    Ich hätte auch Interesse am Code
    Darf ich den frei verwenden oder irgendwas beachten?
    Geändert von ComFreek (23.12.10 um 16:03 Uhr)
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  5. #5
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    ach so, stimmt - also, ich hab's mit dem Visual Studio erstellt (leider VC++ 6.0).

    So Sachen wie CStdioFile und CStringUtils findest Du ihn der MFC, das ist aber nicht zwingend!

    Das CMD "tasklist > c:/TMP.txt" ist ein reiner DOS-Befehl; das Einlesen und Vergleichen musst halt ggf. an Diene Bedürfnisse anpassen !

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  6. #6
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Ihr redet irgendwie aneinander vorbei. Du ermittelst die Speicherauslaustung, MSVCplusplus möchte allerdings die Prozessorauslastung von bestimmten Prozessen ermitteln. Leistet tasklist dies überhaupt?

    Außerdem ist das Verarbeiten von Ausgaben anderer Programme immer etwas fragil, vor allem da MS hin und wieder eine Kleinigkeit an der Ausgabe verändert. Weiterhin ist es eine einigermaßen furchtbare Idee eine festverdrahtete temporäre Datei zu verwenden. Du hättest ja wenigstens eine Pipe verwenden können...

    Zitat Zitat von vfl_freak Beitrag anzeigen
    Das CMD "tasklist > c:/TMP.txt" ist ein reiner DOS-Befehl
    taslist gehört allerdings nicht zum Standardrepertoire von Windows sondern ist nur in bestimmten Versionen vorhanden.

    Es gibt keinen einfachen Weg an die Information zu kommen. Man könnte die (undokumentierte) NtQuerySystemInformation Funktion verwenden.

    Siehe z.B. http://www.codeproject.com/kb/system...diAvramov.aspx

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Task-Manager dreht am Rad
    Von Cheesygecko im Forum VisualStudio & MFC
    Antworten: 5
    Letzter Beitrag: 20.04.07, 17:06
  2. Benutzername wie in Task-Manager
    Von stimon im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 05.11.05, 15:45
  3. Task-Manager Problem
    Von klangdesigner im Forum Microsoft Windows
    Antworten: 3
    Letzter Beitrag: 11.09.05, 20:30
  4. Task-Manager
    Von Moleman im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 23.04.04, 23:11
  5. Task Manager
    Von wildcard im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 29.03.04, 22:24

Stichworte