使用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的Django框架中的URL配置与松耦合
Jul 15 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
Python pandas DataFrame操作的实现代码
Jun 21 Python
OpenCV 模板匹配
Jul 10 Python
django框架forms组件用法实例详解
Dec 10 Python
Pycharm IDE的安装和使用教程详解
Apr 30 Python
python 判断一组数据是否符合正态分布
Sep 23 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
python 窃取摄像头照片的实现示例
Jan 08 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
ParseInt函数参数设置介绍
2014/01/02 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
python实现求最长回文子串长度
2018/01/22 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
感恩节红领巾广播稿
2014/02/11 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
房地产端午节活动方案
2014/08/24 职场文书
员工给公司的建议书
2019/06/24 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL