瑞客论坛

 找回密码
 立即注册
查看: 891|回复: 0

枚举系统中所有硬件设备

[复制链接]

金币31117  第30名

207

主题

-2

回帖

3万

积分

论坛元老

Rank: 8Rank: 8

威望
132
贡献
187
热心值
5
金币
31117
注册时间
2020-8-31
发表于 2021-5-20 14:24 | 显示全部楼层 |阅读模式
虽然简单,但是实用
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
DWORD i,j;
int ret=0;

  hDevInfo = SetupDiGetClassDevs((LPGUID) &GUID;_DEVCLASS_MOUSE, 0, 0,DIGCF_PRESENT);//DIGCF_PROFILE);//
/*
  GUID_DEVCLASS_FDC软盘控制器
  GUID_DEVCLASS_DISPLAY显示卡
  GUID_DEVCLASS_CDROM光驱
  GUID_DEVCLASS_KEYBOARD键盘
  GUID_DEVCLASS_COMPUTER计算机
  GUID_DEVCLASS_SYSTEM系统
  GUID_DEVCLASS_DISKDRIVE磁盘驱动器
  GUID_DEVCLASS_MEDIA声音、视频和游戏控制器
  GUID_DEVCLASS_MODEMMODEM
  GUID_DEVCLASS_MOUSE鼠标和其他指针设备
  GUID_DEVCLASS_NET网络设备器
  GUID_DEVCLASS_USB通用串行总线控制器
  GUID_DEVCLASS_FLOPPYDISK软盘驱动器
  GUID_DEVCLASS_UNKNOWN未知设备
  GUID_DEVCLASS_SCSIADAPTERSCSI 和 RAID 控制器
  GUID_DEVCLASS_HDCIDE ATA/ATAPI 控制器
  GUID_DEVCLASS_PORTS端口(COM 和 LPT)
  GUID_DEVCLASS_MONITOR监视器
  */
        if (hDevInfo == INVALID_HANDLE_VALUE){
                // Insert error handling here.
               // return ;
        }
// Enumerate through all devices in Set.
        DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
        for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData;);i++) {

        DWORD DataT;
        //LPTSTR buffer = NULL;
        char buffer[2048];
        DWORD buffersize =sizeof(buffer);
        while (!SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData;, SPDRP_FRIENDLYNAME, &DataT;, (PBYTE)buffer,  buffersize,  &buffersize;))
        {
                if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
                {
                // Change the buffer size.
                //if (buffer) LocalFree(buffer);
                //buffer = (PSP_INF_INFORMATION)LocalAlloc(LPTR,buffersize);
               // <!--[if !supportEmptyParas]--><!--[endif]-->
                }
                else {

        // Insert error handling here.
                break;
                }
        }
        if (buffer != NULL && i == 0)
        {
//            temp.Format("");
//            str += temp;
        }
//        temp.Format("%s",buffer);
//        str += temp;
        if (buffer) Lo
游客,如果您要查看本帖隐藏内容请回复


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|瑞客论坛 |网站地图

GMT+8, 2024-11-25 12:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表