2017-02-10 209 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