procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z:string;
h:hwnd;
id,cunfang,shiji:dword;
jb:thandle;
begin
myini:=Tinifile.Create('d:\yzautomation_read.ini');
h:=findwindow('TSMCNCFrame',nil);
getwindowthreadprocessid(h,id);//
jb:=openprocess(process_vm_read, false,id);
readprocessmemory(jb,pointer($7F6ADB14),@cunfang,4,shiji);
label4.Caption:=floattostr(strtoint(inttostr(integer(cunfang)))/1000); //从存放的地址取出来并显示
end;
end.
readprocessmemory(jb,pointer($7F6ADB14),@cunfang,4,shiji);
麻烦详细讲解一下这句的意思,@代表的是什么?
如果是多级指针与偏移,应该要怎么写呢?
[img=http://img.bbs.csdn.net/upload/201611/04/1478269973_28022.jpg][/img]
http://baike.baidu.com/link?url=-USjmXGfzWphYdVfkwrmfF_94KmdohXhmzMMftg-YGV5Hppq5aKYfojEVLP44vcmq4D-Zx8Alhx5fzUGYpLyGqhSRLhm0krgtDnjqnXjai_
BOOL ReadProcessMemory(
HANDLE hProcess,进程句柄 --- jb
LPCVOID lpBaseAddress,需要读取的基地址 --- pointer($7F6ADB14)
LPVOID lpBuffer,缓冲区地址,读取的内容写入此处 -- @cunfang (存放)
DWORD nSize, 缓冲区大小 4
LPDWORD lpNumberOfBytesRead 实际读取字节数的指针 --- shiji
);