Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
Delphi 7 Enterprise
|
Re: Problem mit ProcessMemory
21. Feb 2008, 14: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.
|
|
Zitat
|