使用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选择排序、冒泡排序、合并排序代码实例
Apr 10 Python
Python中使用items()方法返回字典元素对的教程
May 21 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
Python提取网页中超链接的方法
Sep 18 Python
python中os模块详解
Oct 14 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
pymysql 开启调试模式的实现
Sep 24 Python
使用python实现对元素的长截图功能
Nov 14 Python
py-charm延长试用期限实例
Dec 22 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
Python 基于jwt实现认证机制流程解析
Jun 22 Python
详解tensorflow之过拟合问题实战
Nov 01 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
php minixml详解
2008/07/19 PHP
PHP number_format() 函数定义和用法
2012/06/01 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
JavaScript面向对象精要(下部)
2017/09/12 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
深入浅析Python字符编码
2015/11/12 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
使用python实现knn算法
2017/12/20 Python
浅谈Python NLP入门教程
2017/12/25 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
python3中eval函数用法使用简介
2019/08/02 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
学生宿舍管理制度
2014/01/30 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
单位授权委托书范文
2014/08/02 职场文书
个人委托书范本
2014/09/13 职场文书
药品开票员岗位职责
2015/04/15 职场文书
计算机教师工作总结
2015/08/13 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
导游词之山海关
2019/12/10 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS