-
-
[求助]DirectInput 与SendInput
-
发表于:
2011-8-19 18:16
15586
-
[求助]DirectInput 与SendInput
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直播授课