Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Problem mit ProcessMemory

  Alt 21. Feb 2008, 13:33
Delphi-Quellcode:
function getType(Typ:cardinal):string;
begin
  case typ of
    MEM_Image:result:='Image';
    MEM_Private:result:='Private';
    MEM_Mapped:result:='Mapped';
    else result:='';
  end;
end;

procedure TForm1.getmemInfo(hProcess:Thandle);
var mbi:memory_basic_information;
    si:system_info;
    pos:cardinal;
begin
  getsysteminfo(si);
  pos:=cardinal(si.lpMinimumApplicationAddress);
  while pos<cardinal(si.lpMaximumApplicationAddress) do begin
    virtualqueryEx(HProcess,pointer(pos),mbi,sizeof(mbi));
    if ((mbi.State and mem_commit)>0) then
      memo1.Lines.Add(inttohex(integer(mbi.BaseAddress),8)+
                ' Größe: '+inttostr(mbi.RegionSize)+
                ' Type: '+gettype(mbi.type_9));
    inc(pos,mbi.regionsize);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var wnd:hwnd;
    pid:cardinal;
    hProcess:THandle;
begin
  wnd:=$209E8; //Notepad (aus WinSpector)
  getwindowthreadprocessid(wnd,pid);
  memo1.lines.add(inttohex(pid,8));
  hProcess:=openprocess(Process_ALL_Access,false,pid);
  getmeminfo(hprocess);
  closehandle(hProcess);
end;
Funktioniert bei mir super.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat