各位同学,大家好。最近在弄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);
这句也是可以的
|