设备厂商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相关推荐

  1. OpenCV:如何获取摄像头的型号以及USB设备的VID和PID信息?

    VID和PID PID/VID唯一标识一个设备,HardwareID是为了给系统识别的 ,他是根据PID/VID而生成的.这个与序列号没什么关系,序列号一般都是厂家固化到芯片中的信息而已.GUID只是 ...

  2. 获取电脑USB设备VID和PID等信息。

    转自:[VC] 获取电脑USB设备VID和PID等信息. 1,添加头文件和宏定义 [cpp] view plain copy print ? #include <setupapi.h> # ...

  3. MFC 获取所有USB设备 列举所有USB设备 列举所有USB HUB

    获取所有USB设备,列举所有USB设备 #include <INITGUID.h>  #include <setupapi.h> #pragma comment(lib, &q ...

  4. USB设备的VID与PID

    一.VID和PID   PID/VID唯一标识一个设备,HardwareID是为了给系统识别的 ,他是根据PID/VID而生成的.这个与序列号没什么关系,序列号一般都是厂家固化到芯片中的信息而已.GU ...

  5. 浅谈USB设备的VID和PID

    亲测可用,若有疑问请私信 ​U盘的VID和PID分别是指Vendor ID(生产厂商ID) 和Product ID(产品ID). U盘的主控芯片决定了用什么量产工具.对于多数U盘来说,比如:金士顿.爱 ...

  6. C++获取所有USB接口的vid、pid等信息

    最近项目要写一个MFC的外挂程序,要分别获取电脑上所有扫描枪的输入信息,这时我们就需要根据扫描枪的vid和pid进行区分,有一些同批次同型号的输入设备vid和pid会相同,我们可能需要设备实例路径进行 ...

  7. 通过USB VID和PID卸载USB设备

    以前也发过一几篇关于卸载USB设备的文章,其实原理都是一样都是使用同一个API "CM_Request_Device_Eject_ExW"来完成卸载工作,上一篇是通过遍历USB接点 ...

  8. 解决同VID/PID usb设备驱动重复安装的问题

    电脑连接同型号usb设备不同机器会为每个设备都安装驱动,这样很麻烦,浪费时间.下面为解决方案: (1)每一台设备使用相同的SN,手机上用的sn一般是flash sn或设备写的sn号 (2)电脑端忽略设 ...

  9. libusb获取usb设备的idVendor(vid),idProduct(pid),以及Serial Number

    发表于2015/6/23 21:55:11  4594人阅读 最近在做关于usb设备的项目,用到了libusb,发现关于这个的函数库的介绍,讲解很少,下面仅仅是简单展示一些基本的使用方法,以备后用. ...

  10. java获取usb设备的相关信息

    我从上上个礼拜开始接触,公司需要,所以开始在网上搜索相关资料,但是都没有找到合适的范例,但万幸终于测试出合适的代码. import java.io.UnsupportedEncodingExcepti ...

最新文章

  1. 基于X的GNOME、GTK、GDK、XLib、GLib等之间的关系
  2. nagios用NsClient自定义windows监控
  3. 1 搭建MyBatis环境
  4. linux即时通讯软件下载,安信通linux版下载
  5. java中update_Java 7 Update 21安全改进的详细信息
  6. 多线程、方便扩展的Windows服务程序
  7. Python——高阶函数
  8. 整数规划--指派问题
  9. pyc文件反编译到Python源码
  10. 实验七matlab数值计算,数学应用软件实验报告---MATLAB的数值计算
  11. 探讨手机越狱和安装deb文件的几种方式研究
  12. 国际化批量获取en-US.json,zn-CN.json字典内容
  13. Face Swapping: Automatically Replacing Faces in Photographs论文阅读
  14. 数据治理系列文章:(7)数据安全
  15. Unreal - Environment Query System(EQS)
  16. linux sssd服务启动失败,active-directory – SSSD Kerberos AD Centos故障排除
  17. C# BLE蓝牙开发之使用Windows.Devices.Bluetooth获取小米体重秤的体重
  18. 一款不愿透露姓名的绿色小说软件
  19. 写给学弟学妹的一些话
  20. 【LeetCode】723. Candy Crush 解题报告 (C++)

热门文章

  1. http系列---Apache AB测试工具
  2. Zmodem协议由浅入深
  3. a6账套管理显示无法连接服务器,航天A6基础版简单建账实施流程
  4. win下文件共享多种方式
  5. java如何把汉字转换成机内码_如何用java随机生成一个汉字?
  6. linux服务器一键可视化,安装宝塔教程
  7. ftl文件模板图片_JAVAWEB使用FreeMarker利用ftl把含有图片的word模板生成word文档,然后打包成压缩包进行下载...
  8. 博图(博途)V14编译成功,但仿真无法弹出下载程序窗口/不弹框
  9. cad线性标注命令_CAD线性标注快捷键是什么,怎么使用
  10. ANSYS mesh网格划分