smartchenwei
驱动牛犊
驱动牛犊
  • 注册日期2004-09-15
  • 最后登录2004-11-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1331回复:3

关于DS里的kbfilter??

楼主#
更多 发布于:2004-10-14 16:54
有三个疑问:
一是他返回的scancode,我查了键盘PS2规范(HID好象也是这样)
说现在一般用的都是第二套键盘编码,可是我从DriverMonitor
里看的却是第一套的,不知道为什么,高手指教?难道是为了
保持和PC/XT的兼容在HAL改成了第一套编码,但是键盘在初始化的时候就已经设置完了是第几套的了。

第二个是我想问一下如何检测是否同时按下两个键或三个键?

第三个是我想问一下我在KEY_MAKE的时候把Ctrl键该为"B",重起之后打开记事本的话能证明已经成功,而且按CtrlDel+Alt也不起作用了。但是当我运行MyIe,或者VC(只测试了这两个)之后,这个修改就
不起作用了。而且机器出现异常――键盘失控啊!!!

最新喜欢:

hartonoharton...
smartchenwei
驱动牛犊
驱动牛犊
  • 注册日期2004-09-15
  • 最后登录2004-11-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-15 13:21
我把源代码贴出来来
高手回答啊,保证送分


char theLetter;
if(InputDataStart->Flags == KEY_MAKE)
{
//后添加的用于屏蔽掉Ctrl+Alt+Del
if(InputDataStart->MakeCode == 0x10) //将"Ctrl"0x1d该为"B"0x30
{
InputDataStart->MakeCode = 0x30;
//InputDataStart->MakeCode = 0x30;
}
///////////////////////////////////////////////_END_
theLetter = ConvertScancodeToLetter(InputDataStart->MakeCode);
//Print out the scancode
if(theLetter != ' ')
t << theLetter << " was pressed" << "\n";
else
t << "scancode " << InputDataStart->MakeCode << "\n";
}
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-23 21:40
你要处理按下和弹起,我曾经写过一个修改F12键为"."的kbdfilter,使用很好没有问题。
键盘Filter很简单,使用DDK的哪个sample就很好了
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
hartono
驱动牛犊
驱动牛犊
  • 注册日期2004-10-13
  • 最后登录2005-11-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-10-27 16:29
我也想知道答案!!
游客

返回顶部