实现DX游戏的键盘鼠标操作

本文介绍了在面临DX游戏无法通过SendMessage和PostMessage进行键盘鼠标模拟操作的问题时,如何利用WinIO的SendInput函数将输入事件放入消息队列,从而实现在DX游戏中模拟鼠标和键盘的功能。尽管这种方法存在后台操作的限制,但仍然是解决此类问题的有效途径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*碰到DX游戏SendMessage 和PostMessage是没办法使用模拟键盘鼠标操作的,这时候我们可以用WinIO的SendInput把键盘鼠标消息放到消息队列里面去实现 代码如下:

模拟鼠标

 

int   SuccessAction1, SuccessAction2, SuccessAction3;
	INPUT   MouseInput[3];
int x=200,y=200;
	///第一个动作:模拟鼠标移动到指定位置    
	MouseInput[0].type = INPUT_MOUSE;//虚拟的类型 INPUT_MOUSE or INPUT_KEY
	
	MouseInput[0].hi.uMsg = NULL;
	MouseInput[0].hi.wParamH = NULL;
	MouseInput[0].hi.wParamL = NULL;
	/键盘消息
	MouseInput[0].ki.dwExtraInfo = NULL;
	MouseInput[0].ki.dwFlags = NULL;//键盘的消息
	MouseInput[0].ki.time = NULL;
	MouseInput[0].ki.wScan = NULL;//键盘扫描码
	MouseInput[0].ki.wVk = NULL;//键盘VK码
	/鼠标消息
	MouseInput[0].mi.dwExtraInfo = NULL;
	MouseInput[0].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE; //鼠标标志 MOUSEEVENTF_LEFTDOWN  MOUSEEVENTF_ABSOLUTE
	MouseInput[0].mi.dx = x;//鼠标x坐标
	MouseInput[0].mi.dy = y;//鼠标y坐标
	MouseInput[0].mi.mo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值