2017-02-10 214 views
4

我正在运行Windows 7和Python 3.5。 连接USB棒后,我的目标是确定连接的端口版本(2.0,3.0,3.1)以及USB棒支持哪种版本的USB。 任何想法表示赞赏。如何确定Windows上的USB端口版本?

+0

测试速度可能是一个想法 –

+0

,这是不够可靠。我可以得到一个低速USB棒,并认为它是2.0。而且,这需要时间。最好的方法是使用像WMI查询那样的不合格,但不确定在哪里寻找。 – wolfich

+0

收集这些信息后你会做什么? – WhatsThePoint

回答

1

你应该看看微软的USBView

它使用Windows API获取有关每个USB端口和每个设备的信息并显示它。这些信息包括USB端口支持的速度和设备正在使用的速度。

您可以运行它作为一个GUI或者你可以用这样的参数运行它,使之成为数据保存到文本文件:

usbview /saveall:usb.txt 

这里是文本输出的一个片段显示的信息你有兴趣在我的USB耳机:

Is Port User Connectable:   yes 
Is Port Debug Capable:   no 
Companion Port Number:   1 
Companion Hub Symbolic Link Name: USB#VID_0451&PID_8046#5&16bdd27b&0&22#{f18a0e88-c30c-11d0-8815-00a0c906bed8} 
Protocols Supported: 
USB 1.1:       yes 
USB 2.0:       yes 
USB 3.0:       no 

Device Power State:    PowerDeviceD0 

     ---===>Device Information<===--- 
English product name: "Logitech G930 Headset" 

ConnectionStatus: 
Current Config Value:    0x01 -> Device Bus Speed: Full (is not SuperSpeed or higher capable) 
Device Address:     0x09 
Open Pipes:       1 

USBVIEW是开源的,甚至有一个MSYS2包,所以你可以尝试一下不编译任何东西。您也许能够从Microsoft找到预编译的二进制文件。

最简单的路径可能是从您的Python程序运行USBView并解析其文本输出。另一种选择是查看source code for USBView,并以某种方式将其转换为Python或将Python C扩展出来。

+0

似乎工作解决方案。谢谢。 – wolfich