首页
社区
课程
招聘
[求助]DirectInput 与SendInput
发表于: 2011-8-19 18:16 15505

[求助]DirectInput 与SendInput

2011-8-19 18:16
15505
SendInput 可以模拟按键,在底层键盘钩子里用LLKHF_INJECTD可以区分模拟按键和真实按键,在DirectInput里如何区分,看了很多贴子,说DirectInput与硬件直接交互,照理说DirectInput里的
GetDeviceState和GetDeviceData获取不到模拟按键信息,确实很多帖子说SendInput对用DirectInput实现的游戏无效,实际上是有效的,我用DX SDK附带的Mouse.exe测试的。
问题:
(1)win32k!NtUserSendInput大致实现流程是什么?我已经看了RectOS里的实现,好像Windows的实现不一样,至少没有设置LLKHF_INJECTD,
(2)GetDeviceState在那里获取的数据,为什么能获取SendInput发送的数据
(3)GetAsyncKeyState不是检测物理键盘的状态吗?它也不能区分SendInput模拟按键和真实按键
(4)看到RectOS里有个gQueueKeyStateTable全局变量,SendInput影响了这个数组,难道GetAsyncGetKeyState,DirectInput都是在这里获取的,Windows本身实现有这么一个数组吗?我反汇编下win32k!NtUserSendInput,基本没有看懂,各位大侠指导下!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 271
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己顶下,高手指导下嘛
2011-8-19 22:44
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
3
其实DirectInput 实际上是个SetWindowHookEx设置的某种类型的钩子而已~~
OD下断就有真相~
2011-8-20 07:47
0
雪    币: 271
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不是很明白,能具体说下吗
2011-8-22 09:21
0
游客
登录 | 注册 方可回帖
返回
//