http://www.delphi2007.net/DelphiMultimedia/html/delphi_2006120223245596.html
内存地址是2A1B064 怎么Edit1.text显示出来是乱码啊??
var
wnd:hwnd;
pid:hwnd;
pHandle:hwnd;
hp:pointer;
i:integer;
nSize:DWORD;
lpNumberOfBytesRead:DWORD;
begin
i:=$2A1B064;
nSize:=4;
hp:=AllocMem(nSize);
Wnd := FindWindow(nil,'Element Client');
GetWindowThreadProcessId(wnd,@pid);
pHandle:=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
ReadProcessMemory(pHandle,Pointer(i),hp,nSize,lpNumberOfBytesRead);
Edit1.text:=strpas(hp);
end;
Move(hp^, i, 4);
Edit1.Text := IntToStr(i);
谢谢楼上的,但显示出来的好象是双字节,可以边成单字节吗?
比如这个地址显示的是人物的血(176)
但是这段代码显示出来是16816
用金山游侠得到的是该地址单字节为176 双字节为16816 四字节为0000016816
怎样使代码显示的是176??
有时候又显示176了
字节显示:
i := 0;
Move(hp^, i, 1);
Edit1.Text := IntToStr(i);
字显示:
i := 0;
Move(hp^, i, 2);
Edit1.Text := IntToStr(i);
双字显示:
Move(hp^, i, 4);
Edit1.Text := IntToStr(i);
武林外传?
一定是武林外传?
直接把 hp 定义成 dword 类型的变量
然后直接显示 hp 就一切正常,你非定义成指针干么
楼主,好好写啊,我在玩呢!到时帮你测试啊,嘿嘿