leiwhere
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2010-10-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:2487回复:9

虚拟键盘的问题

楼主#
更多 发布于:2004-02-04 10:57
我最近在开发一个虚拟的键盘,最初目的是为了玩游戏方便。
免得我狂按键盘,顺便帮我输入个必杀技什么的。

我的流程是这样的。
首先提供一个bus驱动,由bus枚举出一个键盘。
在这个键盘的 fdo 驱动中 通过 OCTL_INTERNAL_KEYBOARD_CONNECT
接受 系统的 keyboardclass 提供的 服务函数 KeyboardClassServiceCallback

调用 KeyboardClassServiceCallback 向系统提供键盘数据。

但现在遇到了一个问题,我向系统提供数据,系统没任何反映。

我观察了一下,我调用 KeyboardClassServiceCallback 的时候
传入的参数,和真实键盘传入的参数 没什么 不同 。

KeyboardClassServiceCallback 总共有 4 个参数,其中第一参数
代表 keyboardclass0 或 keyboardclass1 等 不同的设备,
系统分给我的是 1 ,我如果 用 1 调用 这个函数 ,不会有效果,
如果我冒充真实键盘用 0 调用 ,系统就会有响应。

据我分析,可能是keyboardclass 认为我的 设备状态不正确,
所以拒绝为我提供服务。

有没有那位朋友有这方面的经验,可以给我一些提示。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-02-04 11:14
没必要。写键盘过滤驱动即可,把返回的按键,改为你所需要的按键即可。。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
leiwhere
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2010-10-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-04 11:46
没必要。写键盘过滤驱动即可,把返回的按键,改为你所需要的按键即可。。。。。。


我不想写过滤,我想知道如果我做虚拟的键盘应该怎么办,以及为什么keyboardclass拒绝为我提供服务!
leiwhere
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2010-10-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-07 18:45
仔细观察了一下,发现csrss 根本没打开 我的键盘?
有没有遇到过类似问题的朋友?

另外,发现 我发送 的 键盘数据 对 vgs 没用处。
难道vgs 不是 通过 keyboardclass 获得输入的么?
haplo
驱动牛犊
驱动牛犊
  • 注册日期2002-02-27
  • 最后登录2007-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-09 10:46
我对这不太懂,你的驱动对记事本这类程序有效吗?VGS好像是通过DirectInput来接收输入的,可能与一般的程序不同。
leiwhere
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2010-10-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-10 09:31
在ddk中找到了一个图片说明。
指出directinput也是使用 keyboardclass
现在我想知道 他是 用什么方式 使用的 keyboardclass 呢?
leiwhere
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2010-10-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-02-12 09:38
已经确定是bus驱动写的有问题,但还不确定具体是那里出了问题。

换了一个思路,完成了一个好使的虚拟键盘。直接使用root bus 。

现在还没测试对directinput是否有效。
yyjjooo
驱动牛犊
驱动牛犊
  • 注册日期2008-02-25
  • 最后登录2008-06-24
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-04-06 14:21
楼主,能不能把你的驱动发给我看看。不胜感激
yyjjooo
驱动牛犊
驱动牛犊
  • 注册日期2008-02-25
  • 最后登录2008-06-24
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2008-04-06 14:22
我的邮箱yyjjooo@163.com
yyjjooo
驱动牛犊
驱动牛犊
  • 注册日期2008-02-25
  • 最后登录2008-06-24
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-04-06 14:59
好姐姐。谢谢了
游客

返回顶部