ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
380
380
EMPFEHLEN
-
22.12.10 21:08 #1
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!
-
23.12.10 08:10 #2
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ß
KlausEs 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 !!
-
23.12.10 15:43 #3
cool danke aber welche header dateien muss ich einbinden****
-
23.12.10 15:59 #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 erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
23.12.10 16:01 #5
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ß
KlausEs 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 !!
-
23.12.10 16:22 #6
- 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...
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
-
Task-Manager dreht am Rad
Von Cheesygecko im Forum VisualStudio & MFCAntworten: 5Letzter Beitrag: 20.04.07, 17:06 -
Benutzername wie in Task-Manager
Von stimon im Forum C/C++Antworten: 1Letzter Beitrag: 05.11.05, 15:45 -
Task-Manager Problem
Von klangdesigner im Forum Microsoft WindowsAntworten: 3Letzter Beitrag: 11.09.05, 20:30 -
Task-Manager
Von Moleman im Forum Microsoft WindowsAntworten: 2Letzter Beitrag: 23.04.04, 23:11 -
Task Manager
Von wildcard im Forum Microsoft WindowsAntworten: 2Letzter Beitrag: 29.03.04, 22:24





Zitieren


Login






