首页
社区
课程
招聘
为什么有的键盘按键拿不到扫描码
发表于: 2015-10-13 23:07 3979

为什么有的键盘按键拿不到扫描码

2015-10-13 23:07
3979
我拦截了 \\Device\\keyboardClass0 的 IRP_MJ_READ请求。
从 KEYBOARD_INPUT_DATA.MakeCode 可以得到按键的扫描码。
但是有几个按键却得不到:Win键、菜单键(右边Alt键隔壁)、Fn键(笔记本电脑键盘)、Enter(小键盘)。
按下其他键都得到扫描码(从IRP_MJ_READ的完成函数得到),唯独以上几个键得不到,甚至没有触发IRP_MJ_READ的完成函数,但是按下这些键是成功作用的,为什么会这样。
按下一个按键可以不经过键盘驱动?
有什么办法可以获得这几个按键的扫描码?

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
关注学习中
2015-10-14 08:24
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用 “\\Device\\KeyboardPort0”行不行?还有Flags域有两个Extended scan code的标志
2015-10-14 09:47
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
原来如此,
以前一直不注意Flags,简单的判断是MAKE或者BREAK而已,忽略了E1 E2
2015-10-15 00:44
0
游客
登录 | 注册 方可回帖
返回
//