获取指定USB设备的VID PID和SerialNumber
设备厂商ID 查询, google www.usb.org + vendor id list
所需头文件库文件: #include <Setupapi.h> , Setupapi.lib
void CCameraInfoViewerDlg::CollectUSBInfo()
{
// 获取当前系统所有使用的设备
DWORD dwFlag = (DIGCF_ALLCLASSES | DIGCF_PRESENT);
HDEVINFO hDevInfo = SetupDiGetClassDevs(NULL, NULL, NULL, dwFlag);
if( INVALID_HANDLE_VALUE == hDevInfo )
{
AfxMessageBox( _T("获取系统设备列表失败") );
return;
}
// 准备遍历所有设备查找USB
SP_DEVINFO_DATA sDevInfoData;
sDevInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
//VID: ZYZW 公司的生产商号
const TCHAR NIKON_ID[] = _T("XYZW");
CString strText;
TCHAR szDIS[MAX_PATH]; // Device Identification Strings,
DWORD nSize = 0 ;
for(int i = 0; SetupDiEnumDeviceInfo(hDevInfo,i,&sDevInfoData); i++ )
{
nSize = 0;
if ( !SetupDiGetDeviceInstanceId(hDevInfo, &sDevInfoData, szDIS, sizeof(szDIS), &nSize) )
{
AfxMessageBox( _T("获取设备识别字符串失败") );
break;
}
// 设备识别串的前三个字符是否是"USB", 模板: USB\VID_XXXX&PID_XXXX\00000xxxxxxx
CString strDIS( szDIS );
strDIS.MakeUpper();
if( strDIS.Left( 3 ) == _T("USB") )
{
strText += strDIS;
strText += _T("\r\n");
int iVID_Pos = strDIS.Find( NIKON_ID );
if( iVID_Pos == 8 )
{
// VID: 厂商号
m_wndEditVID.SetWindowText( NIKON_ID );
// PID :产品号
int iSlashPos = strDIS.ReverseFind(_T('\\'));
int iPID_Pos = strDIS.Find( _T("PID_") );
CString strProductID = strDIS.Mid( iPID_Pos+4, iSlashPos - iPID_Pos - 4 );
m_wndEditPID.SetWindowText( strProductID );
// 序列号
int iRight = strDIS.GetLength() - iSlashPos -1;
CString strSerialNumber = strDIS.Right( iRight );
m_wndEditNUM.SetWindowText( strSerialNumber );
}
}
}
m_wndEditENUM.SetWindowText( strText );
// 释放设备
SetupDiDestroyDeviceInfoList(hDevInfo);
}
获取指定USB设备的VID PID和SerialNumber相关推荐
- OpenCV:如何获取摄像头的型号以及USB设备的VID和PID信息?
VID和PID PID/VID唯一标识一个设备,HardwareID是为了给系统识别的 ,他是根据PID/VID而生成的.这个与序列号没什么关系,序列号一般都是厂家固化到芯片中的信息而已.GUID只是 ...
- 获取电脑USB设备VID和PID等信息。
转自:[VC] 获取电脑USB设备VID和PID等信息. 1,添加头文件和宏定义 [cpp] view plain copy print ? #include <setupapi.h> # ...
- MFC 获取所有USB设备 列举所有USB设备 列举所有USB HUB
获取所有USB设备,列举所有USB设备 #include <INITGUID.h> #include <setupapi.h> #pragma comment(lib, &q ...
- USB设备的VID与PID
一.VID和PID PID/VID唯一标识一个设备,HardwareID是为了给系统识别的 ,他是根据PID/VID而生成的.这个与序列号没什么关系,序列号一般都是厂家固化到芯片中的信息而已.GU ...
- 浅谈USB设备的VID和PID
亲测可用,若有疑问请私信 U盘的VID和PID分别是指Vendor ID(生产厂商ID) 和Product ID(产品ID). U盘的主控芯片决定了用什么量产工具.对于多数U盘来说,比如:金士顿.爱 ...
- C++获取所有USB接口的vid、pid等信息
最近项目要写一个MFC的外挂程序,要分别获取电脑上所有扫描枪的输入信息,这时我们就需要根据扫描枪的vid和pid进行区分,有一些同批次同型号的输入设备vid和pid会相同,我们可能需要设备实例路径进行 ...
- 通过USB VID和PID卸载USB设备
以前也发过一几篇关于卸载USB设备的文章,其实原理都是一样都是使用同一个API "CM_Request_Device_Eject_ExW"来完成卸载工作,上一篇是通过遍历USB接点 ...
- 解决同VID/PID usb设备驱动重复安装的问题
电脑连接同型号usb设备不同机器会为每个设备都安装驱动,这样很麻烦,浪费时间.下面为解决方案: (1)每一台设备使用相同的SN,手机上用的sn一般是flash sn或设备写的sn号 (2)电脑端忽略设 ...
- libusb获取usb设备的idVendor(vid),idProduct(pid),以及Serial Number
发表于2015/6/23 21:55:11 4594人阅读 最近在做关于usb设备的项目,用到了libusb,发现关于这个的函数库的介绍,讲解很少,下面仅仅是简单展示一些基本的使用方法,以备后用. ...
- java获取usb设备的相关信息
我从上上个礼拜开始接触,公司需要,所以开始在网上搜索相关资料,但是都没有找到合适的范例,但万幸终于测试出合适的代码. import java.io.UnsupportedEncodingExcepti ...
最新文章
- 基于X的GNOME、GTK、GDK、XLib、GLib等之间的关系
- nagios用NsClient自定义windows监控
- 1 搭建MyBatis环境
- linux即时通讯软件下载,安信通linux版下载
- java中update_Java 7 Update 21安全改进的详细信息
- 多线程、方便扩展的Windows服务程序
- Python——高阶函数
- 整数规划--指派问题
- pyc文件反编译到Python源码
- 实验七matlab数值计算,数学应用软件实验报告---MATLAB的数值计算
- 探讨手机越狱和安装deb文件的几种方式研究
- 国际化批量获取en-US.json,zn-CN.json字典内容
- Face Swapping: Automatically Replacing Faces in Photographs论文阅读
- 数据治理系列文章:(7)数据安全
- Unreal - Environment Query System(EQS)
- linux sssd服务启动失败,active-directory – SSSD Kerberos AD Centos故障排除
- C# BLE蓝牙开发之使用Windows.Devices.Bluetooth获取小米体重秤的体重
- 一款不愿透露姓名的绿色小说软件
- 写给学弟学妹的一些话
- 【LeetCode】723. Candy Crush 解题报告 (C++)
热门文章
- http系列---Apache AB测试工具
- Zmodem协议由浅入深
- a6账套管理显示无法连接服务器,航天A6基础版简单建账实施流程
- win下文件共享多种方式
- java如何把汉字转换成机内码_如何用java随机生成一个汉字?
- linux服务器一键可视化,安装宝塔教程
- ftl文件模板图片_JAVAWEB使用FreeMarker利用ftl把含有图片的word模板生成word文档,然后打包成压缩包进行下载...
- 博图(博途)V14编译成功,但仿真无法弹出下载程序窗口/不弹框
- cad线性标注命令_CAD线性标注快捷键是什么,怎么使用
- ANSYS mesh网格划分