使用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中的startswith和endswith函数使用实例
Aug 25 Python
Django基础之Model操作步骤(介绍)
May 27 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
浅谈python之新式类
Aug 12 Python
Python开发的十个小贴士和技巧及长常犯错误
Sep 27 Python
python dataframe向下向上填充,fillna和ffill的方法
Nov 28 Python
python PrettyTable模块的安装与简单应用
Jan 11 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
Python基础详解之邮件处理
Apr 28 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
php中常用字符串处理代码片段整理
2011/11/07 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
js的匿名函数使用介绍
2013/12/11 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
Python3安装Pymongo详细步骤
2017/05/26 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
python根据文本生成词云图代码实例
2019/11/15 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
Python中常用的os操作汇总
2020/11/05 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
一封普通求职者的求职信
2013/11/20 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
工作简历自我评价
2015/03/11 职场文书
开学第一周总结
2015/07/16 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
java executor包参数处理功能 
2022/02/15 Java/Android
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL
python三子棋游戏
2022/05/04 Python
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS