您的位置:首页 > 编程语言 > Delphi

delphi做的读取游戏血值的问题,求高手解答

2008-08-31 09:49 423 查看
delphi做的读取游戏血值的问题,求高手解答 Delphi / Windows SDK/API
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 就一切正常,你非定义成指针干么

楼主,好好写啊,我在玩呢!到时帮你测试啊,嘿嘿
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: