问题描述
我有两个 HID 条码扫描仪。我使用下面的代码来获取两个扫描仪的设备句柄。我一次只连接一台扫描仪并执行以下代码。
CreateFile
(this.DevicePath,GENERIC_READ,FileShare.None,IntPtr.Zero,FileMode.Create,FILE_FLAG_OVERLAPPED,IntPtr.Zero);
对于一个扫描仪,上面的代码工作正常,但对于另一个扫描仪,我得到“该进程无法访问该文件,因为它正在被另一个进程使用”。经过一些研究,我发现 Windows 10 打开了 HID 设备文件对于某些扫描仪,默认情况下,为了解决此问题,我更改了 FileShareMode,如下所示。
CreateFile
(this.DevicePath,GENERIC_WRITE | GENERIC_READ,FileShare.Read | FileShare.Write,IntPtr.Zero);
我无法理解的是为什么我只为一台扫描仪而不是另一台扫描仪收到 ERROR_SHARING_VIOLATION。如果默认情况下 Windows 10 已经为 HID 扫描仪设备打开了设备数据文件,为什么它没有为所有条码扫描仪打开。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)