Delphi 读取内存数据

procedure TForm1.btn1Click(Sender: TObject);
const
GameName ='对对碰角色版';
var
GameH:HWND; //定义进程窗口句柄
PidGame:DWORD; //定义进程ID
readByte:DWORD; //实际读取字节
Gamehprocess: THandle; //可以理解为DWord,也就是非负数的整数类型 定义进程句柄
SitNum :DWORD;
begin
GameH:=FindWindow(nil,GameName); //获取游戏窗口句柄
GetWindowThreadProcessId(GameH,PidGame) ; //获取进程ID
Gamehprocess:=OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE,false,PidGame); //获取进程句柄
Readprocessmemory(gamehProcess, Pointer($490FC0),@SitNum,4,readByte); //读出坐位号
Self.edt1.Text:=IntToHex(SitNum,8); //显示到编辑框中
end;

 

转载于:https://www.cnblogs.com/ahroot/archive/2011/10/31/2230522.html

Delphi内存映射共享数据是一种在不同进程之间共享数据的方法。它允许多个进程访问同一块内存区域,以实现数据的共享和交互。 在Delphi,可以使用TMemoryMappedFile和TMemoryMappedView来实现内存映射共享数据。首先,使用TMemoryMappedFile创建一个内存映射文件,并指定文件的名称和大小。然后,使用TMemoryMappedView来创建一个内存映射视图,将内存映射文件加载到当前进程的内存。 一旦内存映射文件被加载到内存,不同进程可以通过该文件进行数据的读写操作。每个进程可以将数据写入内存映射视图的指定位置,并通过内存地址进行数据访问。当一个进程修改了内存映射视图数据后,其他进程也可以看到这些改变。 使用内存映射共享数据的好处是可以提高进程间通信的效率和速度。相比于其他通信方式如管道或消息队列,内存映射共享数据可以直接在内存读写数据,避免了数据的拷贝和传输,提高了数据的访问速度。 当然,使用内存映射共享数据也需要注意一些问题。由于多个进程可以同时访问和修改数据,需要进行合理的同步和互斥操作,以避免数据的竞争和冲突。此外,对于不同的数据类型和结构,需要正确地定义和解释数据的格式和布局,以确保不同进程之间的数据共享和解析的一致性。 总而言之,Delphi内存映射共享数据是一种高效、灵活的进程间通信方式,可以实现数据的共享和交互。通过合理的设计和操作,可以实现进程间数据的高速读写和同步,满足不同应用场景的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值