阅读:2486回复:9
虚拟键盘的问题
我最近在开发一个虚拟的键盘,最初目的是为了玩游戏方便。
免得我狂按键盘,顺便帮我输入个必杀技什么的。 我的流程是这样的。 首先提供一个bus驱动,由bus枚举出一个键盘。 在这个键盘的 fdo 驱动中 通过 OCTL_INTERNAL_KEYBOARD_CONNECT 接受 系统的 keyboardclass 提供的 服务函数 KeyboardClassServiceCallback 调用 KeyboardClassServiceCallback 向系统提供键盘数据。 但现在遇到了一个问题,我向系统提供数据,系统没任何反映。 我观察了一下,我调用 KeyboardClassServiceCallback 的时候 传入的参数,和真实键盘传入的参数 没什么 不同 。 KeyboardClassServiceCallback 总共有 4 个参数,其中第一参数 代表 keyboardclass0 或 keyboardclass1 等 不同的设备, 系统分给我的是 1 ,我如果 用 1 调用 这个函数 ,不会有效果, 如果我冒充真实键盘用 0 调用 ,系统就会有响应。 据我分析,可能是keyboardclass 认为我的 设备状态不正确, 所以拒绝为我提供服务。 有没有那位朋友有这方面的经验,可以给我一些提示。 |
|
沙发#
发布于:2004-02-04 11:14
没必要。写键盘过滤驱动即可,把返回的按键,改为你所需要的按键即可。。。。。。
|
|
|
板凳#
发布于:2004-02-04 11:46
没必要。写键盘过滤驱动即可,把返回的按键,改为你所需要的按键即可。。。。。。 我不想写过滤,我想知道如果我做虚拟的键盘应该怎么办,以及为什么keyboardclass拒绝为我提供服务! |
|
地板#
发布于:2004-02-07 18:45
仔细观察了一下,发现csrss 根本没打开 我的键盘?
有没有遇到过类似问题的朋友? 另外,发现 我发送 的 键盘数据 对 vgs 没用处。 难道vgs 不是 通过 keyboardclass 获得输入的么? |
|
地下室#
发布于:2004-02-09 10:46
我对这不太懂,你的驱动对记事本这类程序有效吗?VGS好像是通过DirectInput来接收输入的,可能与一般的程序不同。
|
|
5楼#
发布于:2004-02-10 09:31
在ddk中找到了一个图片说明。
指出directinput也是使用 keyboardclass 现在我想知道 他是 用什么方式 使用的 keyboardclass 呢? |
|
6楼#
发布于:2004-02-12 09:38
已经确定是bus驱动写的有问题,但还不确定具体是那里出了问题。
换了一个思路,完成了一个好使的虚拟键盘。直接使用root bus 。 现在还没测试对directinput是否有效。 |
|
7楼#
发布于:2008-04-06 14:21
楼主,能不能把你的驱动发给我看看。不胜感激
|
|
8楼#
发布于:2008-04-06 14:22
我的邮箱yyjjooo@163.com
|
|
9楼#
发布于:2008-04-06 14:59
好姐姐。谢谢了
|
|