使用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装饰器使用方法实例
Nov 21 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
python OpenCV学习笔记实现二维直方图
Feb 08 Python
使用python生成杨辉三角形的示例代码
Aug 29 Python
Python字符串逆序的实现方法【一题多解】
Feb 18 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
python+django+rest框架配置创建方法
Aug 31 Python
Python调用钉钉自定义机器人的实现
Jan 03 Python
Python二元算术运算常用方法解析
Sep 15 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
Yii使用migrate命令执行sql语句的方法
2016/03/15 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
javascript实现下雨效果
2017/03/27 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
Python装饰器语法糖
2019/01/02 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
python 实现端口扫描工具
2020/12/18 Python
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
简短大学毕业感言
2014/01/18 职场文书
办公室文员工作职责
2014/01/31 职场文书
初中学校对照检查材料
2014/08/19 职场文书
暂住证明怎么写
2015/06/19 职场文书
幼儿园开学报名通知
2015/07/16 职场文书