打印
[应用相关]

关于USB的键盘读取问题

[复制链接]
780|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
iliketolearn|  楼主 | 2019-5-21 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位同学,大家好。最近在弄USB,目前打算通过VC++访问键盘。 但是发现CreateFile在以GENERIC_READ的方式打开键盘的时候总是返回错误。 GetLastError的返回码是5,报的是访问权限问题。 我已经用管理员权限执行这个程序了,还是不行。 难道是有别程序独占打开这个键盘设备了?那如何知道是谁在访问这个设备呢?谢谢。
下面是部分代码:
hDevHandle=CreateFile(MyDevPathName,  NULL,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
这句是可以,但是只能查询属性,不能读写。


hReadHandle=CreateFile(MyDevPathName,GENERIC_READ,  FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
上面这句就报错了。


hWriteHandle=CreateFile(MyDevPathName,GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
这句也是可以的

使用特权

评论回复
沙发
tfqi| | 2019-5-22 15:33 | 只看该作者
有没有可能是供电不稳导致的呢

使用特权

评论回复
板凳
iliketolearn|  楼主 | 2019-5-29 09:43 | 只看该作者
我后来在网上搜了好多帖子,目前隐约感觉,可能是键盘的读写,就是独占的,是由系统来自己独立使用的。 但是,我看圈圈教你学USB的书里面的代码,却是可以访问的。我在WINXP下页试过,都不行。 这方面的资料比较少。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

36

帖子

1

粉丝