使用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爬虫爬取一个网页上的图片地址实例代码
Jan 16 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
Python绘制KS曲线的实现方法
Aug 13 Python
Python多进程原理与用法分析
Aug 21 Python
使用python3构建文件传输的方法
Feb 13 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
详解用python写一个抽奖程序
May 10 Python
了解不常见但是实用的Python技巧
May 23 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
Feb 11 Python
Python数据结构dict常用操作代码实例
Mar 12 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
php开发环境配置记录
2011/01/14 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
python 实现归并排序算法
2012/06/05 Python
python使用fork实现守护进程的方法
2017/11/16 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
Python实现数值积分方式
2019/11/20 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
小车司机岗位职责
2013/11/25 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
vscode中使用npm安装babel的方法
2021/08/02 Javascript