获取显示卡的信息 .

利用SetupDiGetClassDevs和SetupDiGetDeviceRegistryPropertyA获取显示卡驱动信息。

#include "stdafx.h"

#include <setupapi.h>

#pragma comment(lib,"setupapi.lib")
GUID pGUID= { 0x4D36E968 , 0xE325 , 0x11CE , 0xBF , 0xC1 , 0x08 , 0x00 , 0x2B , 0xE1 , 0x03 , 0x18};
int _tmain(int argc, _TCHAR* argv[])
{
 HDEVINFO hDevInfo = 0;
 SP_DEVINFO_DATA spDevinofData = {0};

 char szClass[128]={0};
 char szBuf[128]  ={0};
 DWORD dwData=0,i=1;
 BOOL bRtn=FALSE;
 //get the specified class

 //这是就通过guid找到了类的信息。
 hDevInfo = SetupDiGetClassDevs(&pGUID,0,NULL,DIGCF_PRESENT);

 //这个时候我们可以同下面的函数来获得类的描述。比如guid为vga的时候dwdata返回值为显示适配器

 SetupDiGetClassDescriptionA(&pGUID,szClass,128,&dwData);
    printf("%d/n",dwData);
 //枚举设备信息

 spDevinofData.cbSize = sizeof(SP_DEVINFO_DATA);
 for(i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&spDevinofData);i++)
 {

  //通过设备类,以及枚举出的设备信息数据获的具体的名称。
  bRtn = SetupDiGetDeviceRegistryPropertyA(hDevInfo,&spDevinofData,SPDRP_DEVICEDESC,0L,(PBYTE)szBuf,128,0);
  printf("%s/n",szBuf);
 }
 return 0;

}

你可能感兴趣的:(获取显示卡的信息 .)