Mindeo MP725扫描器编程配置及Windows下hidapi读取权限问题求助
问题:Mindeo MP725扫描器编程配置与Windows下hidapi访问权限问题
是否可以对Mindeo MP725扫描器进行编程配置?我正尝试在Windows系统下通过USB收发数据,使用的是Python的hid/hidapi库,该库是当前系统中唯一能识别并适配Mindeo MP725的库。
设备信息
{'path': b'\\?\HID#VID_27DD&PID_0103#6&269d9e14&1&0000#{4d1e55b2-f16f-11cf-88cb-001111110000}\KBD', 'vendor_id': 10205, 'product_id': 259, 'serial_number': 'S/N:E608A04AB4151A4F9C8FA887B58B3D69 Rev: NBRMIAAX1', 'release_number': 259, 'manufacturer_string': '2D BarCode Scanner', 'product_string': '2D BarCode Scanner', 'usage_page': 1, 'usage': 6, 'interface_number': -1}
代码示例
import ctypes import os ctypes.CDLL(os.path.dirname(__file__) + '\hidapi.dll') import hid vid = 0 pid = 0 path = '' list_device = hid.enumerate() for i in list_device: if i['product_string'] == '2D BarCode Scanner': print(i) vid = i['vendor_id'] pid = i['product_id'] path = i['path'] with hid.Device(path=path) as h: h.nonblocking # print(f'Device manufacturer: {h.manufacturer}') # print(f'Product: {h.product}') # print(f'Serial Number: {h.serial}') while True: d = h.read(255) if d: print(d)
报错信息
Traceback (most recent call last): File "c:\Users\user\Desktop\x64\MP725.py", line 62, in <module> d = h.read(255) ^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\hid\__init__.py", line 163, in read size = self.__hidcall(hidapi.hid_read, self.__dev, data, size) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\hid\__init__.py", line 148, in __hidcall raise HIDException(err) hid.HIDException: ReadFile: (0x00000005) Access denied.
我已排查过库本身的访问问题(其他方法均可正常运行,因此认为库无问题),推测Windows将该扫描器识别为键盘类输入设备,从而限制对其的管理,请问该如何解决此问题?
解决方案
1. 切换扫描器工作模式
Mindeo MP725支持切换至HID POS模式或虚拟串口模式,这类模式下设备不会被Windows识别为普通键盘,系统不会独占设备访问权:
- 查找MP725官方手册,找到对应模式切换的配置条码,直接扫描即可完成模式变更;
- 切换后重新枚举设备,此时设备的
usage_page和usage参数会改变,hidapi可正常读取数据。
2. 禁用设备的键盘类识别
通过设备管理器解除Windows对键盘设备的独占:
- 打开「设备管理器」,找到「键盘」分类下的「2D BarCode Scanner」;
- 右键选择「禁用设备」,确认后重新运行代码;
- 注意:禁用后扫描器无法作为普通键盘输入,仅适合编程控制场景。
3. 以管理员权限运行代码
Windows的权限限制可能阻止非管理员进程访问HID设备:
- 右键点击Python脚本,选择「以管理员身份运行」;
- 或在管理员权限的命令提示符/终端中启动Python解释器,再执行脚本。
4. 使用官方SDK
Mindeo针对旗下设备提供专用SDK,比hidapi更适配:
- 前往Mindeo官方平台下载MP725对应的Windows SDK;
- 替换hidapi使用官方SDK,可直接处理设备配置与数据交互。
内容的提问来源于stack exchange,提问作者Genius Loci
相关产品推荐
相关产品推荐

