使用 pyusb 列出 usb 设备不起作用

Listing usb devices using pyusb doesn't work

我正在尝试列出我的 windows 7 电脑上的 USB 设备。我提前安装了这个:https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-devel-filter-1.2.6.0.exe

下面的代码不打印任何东西。是否还有其他方法可以获取设备信息?

import usb.core
import usb.util
dev = usb.core.find(find_all=True)
for d in dev:
    print(usb.util.get_string(d,128,d.iManufacturer))

编辑:已解决

这接近我需要的 Retrieve list of USB items using Python

import win32com.client
wmi = win32com.client.GetObject ("winmgmts:")
for usb in wmi.InstancesOf ("Win32_USBHub"):
    print('Device ID:', usb.DeviceID)

看起来您正在使用 Python libusb 包装器。这只会枚举实际上与 libusb 驱动程序相关联的 USB 设备。每个设备都与一个驱动程序相关联,并且大多数都会有 OS 提供的 class 个驱动程序(例如 HID、UVC、MSC 等),因此您需要使用不同的 API 来访问它们。如果您确实需要,您可以使用本机 SetupAPI 和 Windows 上的 WinUSB 以通用方式枚举所有设备。但是这个包装器只会枚举专门使用 libusb 驱动程序的设备。由于您的代码没有显示任何内容,您可能只是没有使用 libusb 的设备。

您可以使用 Zadig 工具将驱动程序重新映射到不同的设备。但是要小心这样做,因为如果您碰巧选择了不受支持的配置,很容易破坏事情。它通常在您拥有自定义或第 3 方设备时使用。