获取本机所有显卡的信息--代码

来源:互联网 发布:美团抢单软件 编辑:程序博客网 时间:2024/06/10 08:30

我相信有人需要这个。

 

  1.     HDEVINFO hDevInfo = NULL;
  2.     DWORD dwIndex = 1;
  3.     SP_DEVINFO_DATA DevInfo_data;
  4.     ZeroMemory(&DevInfo_data, sizeof(SP_DEVINFO_DATA));
  5.     DevInfo_data.cbSize = sizeof(SP_DEVINFO_DATA);
  6.     hDevInfo = SetupDiGetClassDevs(
  7.         (LPGUID) &GUID_DEVCLASS_DISPLAY,
  8.         0, // Enumerator
  9.         0,
  10.         DIGCF_PRESENT
  11.     );
  12.     if (hDevInfo == INVALID_HANDLE_VALUE)
  13.     {
  14.         return;
  15.     }
  16.     for (int i = 0; SetupDiEnumDeviceInfo(hDevInfo, i, &DevInfo_data); i++)
  17.     {
  18.         DWORD DataT;
  19.         LPTSTR buffer = NULL;
  20.         DWORD buffersize = 0;
  21.         CString strFinder;
  22.         while (!SetupDiGetDeviceRegistryProperty(
  23.             hDevInfo,
  24.             &DevInfo_data,
  25.             SPDRP_DEVICEDESC,
  26.             &DataT,
  27.             (PBYTE)buffer,
  28.             buffersize,
  29.             &buffersize)
  30.         )
  31.         {
  32.             if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
  33.             {
  34.                 // Change the buffer size.
  35.                 if (buffer) 
  36.                     LocalFree(buffer);
  37.                 buffer = (LPTSTR)LocalAlloc(LPTR, buffersize); //这里已经取得显卡的名字
  38.             }
  39.             else
  40.             {
  41.                 if (buffer) 
  42.                     LocalFree(buffer);
  43.                 break;
  44.             }
  45.         }
  46.         if (buffer) 
  47.             LocalFree(buffer);
  48.     }
  49.     return;
原创粉丝点击