使用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从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
Python全局变量用法实例分析
Jul 19 Python
Python之web模板应用
Dec 26 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 Python
Python:type、object、class与内置类型实例
Dec 25 Python
基于python3的socket聊天编程
Feb 17 Python
Python简单实现词云图代码及步骤解析
Jun 04 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
Jul 06 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
python 实现IP子网计算
Feb 18 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缓冲 output_buffering的使用详解
2013/06/13 PHP
纯php生成随机密码
2015/10/30 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python实现每次处理一个字符的三种方法
2014/10/09 Python
Python匹配中文的正则表达式
2016/05/11 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
python 同时读取多个文件的例子
2019/07/16 Python
一套中级Java程序员笔试题
2015/01/14 面试题
公司出纳岗位职责
2013/12/07 职场文书
酒店总经理欢迎词
2014/01/08 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
合作意向书模板
2014/03/31 职场文书
项目投资建议书
2014/05/16 职场文书
保险公司开门红口号
2014/06/21 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
化验员岗位职责
2015/02/14 职场文书
紧急迫降观后感
2015/06/15 职场文书
商场广播稿范文
2015/08/19 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python