在Linux系統下獲取USB PID&VID是件十分容易的事情,只需要"lsusb"命令就可以了。
不過,對于Windows,就沒有那么容易了。
之前,有嘗試過通過注冊表來獲得目前連接device的USB PID&VID,不過注冊表里存放的是之前有插入這臺Windows系統的USB設備的歷史記錄,也就是說,并不是目前連接到Windows的USB設備的信息。
這個問題,可以用pyusb這個庫解決,但是pyusb需要依賴庫,不同的Windows可能需要不同的庫,所以如果程序要大規模部署到不同的系統上時,要謹慎考慮。
后來,選用的pyWin32庫,這個更通用一些。使用MGMT,試了兩個instance,其中“Win32_USBHub”只能抓取部分USB設備的信息;但是“win32_usbcontrollerdevice”可以抓取所有的USB信息。(后來想一想,Win32_USBHub抓取的應該是USB hub的信息;而Win32_USBControllerDevice抓取的是USB device的信息)
使用Win32_USBHub的實例代碼如下,
1
2
3
4
5
|
>>> import win32com.client >>> wmi = win32com.client.GetObject ( "winmgmts:" ) >>> for usb in wmi.InstancesOf ( "Win32_USBHub" ): ... print usb.DeviceID ... |
使用Win32_USBControllerDevice的示例代碼如下,
1
2
3
4
5
6
|
import win32com.client wmi = win32com.client.GetObject ( "winmgmts:" ) for usb in wmi.InstancesOf ( "win32_usbcontrollerdevice" ): if "VID_05E0&PID_2107" in usb.Dependent: usbPidVidCorrect = True |
以上這篇使用Python在Windows下獲取USB PID&VID的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/jgw2008/article/details/79097399