使用Python在Windows下获取USB PID&VID的方法


Posted in Python onJuly 02, 2019

在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的实例代码如下,

>>> import win32com.client
>>> wmi = win32com.client.GetObject ("winmgmts:")
>>> for usb in wmi.InstancesOf ("Win32_USBHub"):
...    print usb.DeviceID
...

使用Win32_USBControllerDevice的示例代码如下,

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的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的__SLOTS__属性使用示例
Feb 18 Python
Python中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
Python实现将数据库一键导出为Excel表格的实例
Dec 30 Python
python Pygame的具体使用讲解
Nov 03 Python
python爬取网页转换为PDF文件
Jun 07 Python
Python列表(List)知识点总结
Feb 18 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
django之对FileField字段的upload_to的设定方法
Jul 28 Python
春节到了 教你使用python来抢票回家
Jan 06 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
详解django使用include无法跳转的解决方法
Mar 19 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 Python
在windows下使用python进行串口通讯的方法
Jul 02 #Python
浅析Python 中几种字符串格式化方法及其比较
Jul 02 #Python
Python实用工具FuckIt.py介绍
Jul 02 #Python
Python如何实现转换URL详解
Jul 02 #Python
Pandas的read_csv函数参数分析详解
Jul 02 #Python
如何使用Python实现斐波那契数列
Jul 02 #Python
pandas数据筛选和csv操作的实现方法
Jul 02 #Python
You might like
PHP基础知识介绍
2013/09/17 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
2014年医药代表工作总结
2014/11/22 职场文书
转让协议书
2015/01/27 职场文书
邹越演讲观后感
2015/06/15 职场文书
经典爱情感言
2015/08/03 职场文书
公司安全管理制度范本
2015/08/05 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
P站美图推荐——变身女主角特辑
2022/03/20 日漫
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers