首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2013-10-01 
请教各位大侠一个关于内存读取的问题就你的图上所示,假设要读取这个2355.20浮点数varhwnd:cardinalpid:Dw

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


就你的图上所示,假设要读取这个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;

热点排行