[应用相关] 关于USB的键盘读取问题

[复制链接]
1038|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

粉丝
快速回复 在线客服 返回列表 返回顶部