查了一下win32键盘是从驱动程序到原始线程再到当前焦点线程,使用BlockInput确实能截断从驱动程序到原始线程的通路
而DirectInput也用BlockInput试了一下,发现不能截断,那么DirectInput应该是直接从驱动程序获得数据的了
现在的问题是keybd_event到底是怎么回事,它是向驱动程序发的呢,还是向原始线程发的呢,还是其它的什么?
我在98下试,发现DirectInput无法获得keybd_event的数据
但在XP下试,却发现DirectInput能收到keybd_event的数据
这是怎么回事,是我的98有问题,还是keybd_event在不同操作系统下确实有不同的表现
哪位系统也是98的能否也帮我试试,我用的DirectInput程序是DX8.1SDK中的例程
而DirectInput也用BlockInput试了一下,发现不能截断,那么DirectInput应该是直接从驱动程序获得数据的了
现在的问题是keybd_event到底是怎么回事,它是向驱动程序发的呢,还是向原始线程发的呢,还是其它的什么?
我在98下试,发现DirectInput无法获得keybd_event的数据
但在XP下试,却发现DirectInput能收到keybd_event的数据
这是怎么回事,是我的98有问题,还是keybd_event在不同操作系统下确实有不同的表现
哪位系统也是98的能否也帮我试试,我用的DirectInput程序是DX8.1SDK中的例程
解决方案 »
- 一个数组的编译错误,如何改正?
- 在VC6的标题栏上,如果显示一个文件的全路径
- 程序当前目录问题
- windows API(VC++编程 中IsRectEmpty(&llpRect)的问题
- 如何判断一个对话框的指针指向哪一个个特定的对话框对象
- 有关空记录的判断
- 基于对话框的菜单控制?
- 高手看进来:怎样隐藏应用程序在托盘区的图标?(绝对高分!)
- 如何实现一个Rebar的拖动! 谁有代码 或者文档什么的东西!
- 视频数据在网上怎么实时串送?
- 这件事情老是想不通, 我的派生类为什么不在类的列表中? 例如从DIALOG派生出一个新类CMyDialog, 但是在WIZARD中这新类总是看不到!
- 关于遍历目录及其子目录中文件的问题
真是的,大家好歹帮忙先看看是不是有这个问题嘛我的进展如下:
用softice跟踪入keybd_event发现:呵呵,看不懂
但跟踪入SendInput发现:最后殊途同归,都调用了KEYBD_EVENT(大写的)不过我做了个VXD程序,调用键盘的VXD服务VKD_Force_Keys,发现这样在我的98上能够使DirectInput获得数据
那么至少能够判断出keybd_event在我的98上确实不是简单的向驱动程序发送键盘数据了,应该是更上一层了,比如模拟驱动程序向原始线程发数据,或者是有其它的限制发送吧