C++ Speicher Tut2

Online-tutorials.net Forenübersicht/C++ / C#/C++ Speicher Tut2

Antworten Neues Thema Bottom Seite 1 

Autor | Nachricht      nächster / vorheriger Thread

sleepy
Einsteiger

avatar

Registriert seit: 12.2007
Beiträge:2

C++ Speicher Tut2
Hallo!

Ich versuche seit ein paar Tagen ein Programm zu schreiben, dass den Speicher einer Anwendung überwacht. Sprich ich möchte die Größe des benutzten Speichers herausfinden.
Ich habe auch die Tutorials 1+2 gemacht.(zwar nicht alles 100% verstanden, aber sonst sehr NICE).
Aber hier jetzt meine Frage:
Ich kann zwar mein Fenster finden. und auch die ID bestimmen. Aber woher
weiss ich die Speichergröße/n nach der ich suchen muss? Also ich möchte ja den Speicher der gesamten Applikation haben und nicht einer einzelnen
Variable.

Ich hoffe die Frage ist richtig und verständlich gestellt

Gruß Sleepy

20.12.2007 11:14Profil >> Zitat >> IP gespeichert 
Keywords:speicher Applikation finden

sleepy
Einsteiger

avatar

Registriert seit: 12.2007
Beiträge:2

C++ Speicher Tutorial 2
Ich hab nochmal ein wenig gesucht und auch eine Lösung gefunden.
Falls es jemanden interessiert:

Code:


  HWND            hWnd;
  HANDLE          hProc;
  DWORD           ProcID;
  DWORD           Rw = 0;  
  unsigned        adrStart    = 0x00000000;
  unsigned        adrEnd      = 0x80000000;
  unsigned char   buffer[4096];
  unsigned long   iBytesRead=0;
  unsigned int      ProcSize;
  MEMORY_BASIC_INFORMATION  mbi; 
 
  hWnd = FindWindowA(0, "MeinFenster");
  if(!hWnd)
    return ;
   
  GetWindowThreadProcessId(hWnd, &ProcID);

  hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcID);
  adrEnd = 0x80000000;
 
  ProcSize = 0;
  for(; adrStart<adrEnd; adrStart+=4096)
  {      
      VirtualQueryEx(hProc, (LPCVOID)adrStart,&mbi,4096);
     
        if(mbi.State==MEM_COMMIT)
        {
         if(ReadProcessMemory(hProc,(LPCVOID)adrStart,&buffer,              sizeof(buffer),&ProcID))
            {
                ProcSize++;
            }
      }
     
      iBytesRead+=4096;
  }
  ProcSize = ProcSize *0.004048f;



So komme ich dann an den belegten Speicher des Prozesses. ProcSize liefert mir eine Angabe in MB. Das Ganze ist zwar etwas umständlich, da ich den gesamten Speicher (2GB) durchscanne, aber ich bekomme mein Ergebnis :)


Edit: Code tags eingefügt

Gruß Sleepy

Dieser Beitrag wurde zuletzt am 23.01.2008 15:35 von Simon editiert.



21.12.2007 14:40Profil >> Zitat >> IP gespeichert 
Keywords:speicher Applikation finden

Simon
Online-tutorials.net Administrator

avatar

Registriert seit: 01.1970
Wohnort:Dornbirn
Beiträge:1181

C++ Speicher Tutorial 2
Entschuldige das ich nicht geantwortet habe.

Danke für die Lösung Lachend
-------------------

http://www.online-tutorials.net/wiki/funktionsname

Für was Personal Firewalls GnuGP emails verschlüsseln C++ Tutorial Sicherheits Tutorials



23.01.2008 15:36Homepage >> icq status >>Profil >> Zitat >> IP gespeichert 
Keywords:Speicher Applikation finden
                   nächster / vorheriger Thread

Antworten Neues Thema Top Seite 1