读书人

大侠一个关于内存读取的有关问题

发布时间: 2013-10-01 12:15:56 作者: rapoo

请教各位大侠一个关于内存读取的问题


就你的图上所示,假设要读取这个2355.20浮点数


var
hwnd:cardinal;
pid:Dword;
hProcess:cardinal;
x:Pointer; // <---- 声明为通用指针Pointer类型
Num: cardinal;
begin
GetMem(x, 4); // <---- 分配内存,按single浮点类型的4字节来申请
ZeroMemory(x, 4); // <---- 清零该内存区域
hwnd := FindWindow(nil, '游戏');
GetWindowThreadProcessId (hwnd, @pid);
hProcess := OpenProcess(PROCESS_ALL_ACCESS, false, pid);

If hProcess <> 0 Then
begin
if ReadProcessMemory(hprocess,Pointer($007DA780), x, 4, num) then // <---- 007DA780
label1.Caption := FormatFloat('0.00', PSingle(x)^) // <---- 读取到的数据转为字符串
else
showmessage('读数失败~!');
end
else
showmessage('未启动程序');
CloseHandle(hProcess);
FreeMem(x); // <---- 释放内存
end;

读书人网 >.NET

热点推荐