使用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 29 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
pytorch + visdom 处理简单分类问题的示例
Jun 04 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
tensorflow中tf.reduce_mean函数的使用
Apr 19 Python
500行python代码实现飞机大战
Apr 24 Python
python中Ansible模块的Playbook的具体使用
May 28 Python
详解torch.Tensor的4种乘法
Sep 03 Python
Python 实现国产SM3加密算法的示例代码
Sep 21 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
May 24 Python
Python实现简繁体转换
Jun 07 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和javascript之间变量的传递实现代码
2012/12/19 PHP
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
vuex 的简单使用
2018/03/22 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
利用Python代码实现一键抠背景功能
2019/12/29 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
Python 格式化打印json数据方法(展开状态)
2020/02/27 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
波兰在线运动商店:YesSport
2020/07/23 全球购物
《口技》教学反思
2014/02/21 职场文书
集体婚礼策划方案
2014/02/22 职场文书
军训新闻稿范文
2015/07/17 职场文书