#include <windows.h>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[])
{
HKEY hKey = 0;
char buf[255] = {0};
DWORD dwType = 0;
DWORD dwBufSize = sizeof(buf);
TCHAR szPath[MAX_PATH];
const char* subkey = "SYSTEM\\ControlSet001\\Control\\Class\\{4D36E968-E325-11CE-BFC1-08002BE10318}\\0000";
if( RegOpenKey(HKEY_LOCAL_MACHINE,subkey,&hKey) == ERROR_SUCCESS)
{
dwType = REG_SZ;
RegQueryValueEx(hKey,"Device Description",0, &dwType, (BYTE*)buf, &dwBufSize);
RegCloseKey(hKey);
}
printf ("Device Description: %s\n",buf);
system("PAUSE");
return EXIT_SUCCESS;
}
Работа с реестром
Насколько безопасное такое обращение к реестру для определение установленной видео карты и есть ли другой способ определить?
Опасности по-моему тут нет. Можно попробовать через DirectX ещё определять.
1. Работают на ином, нежели первом, профиле оборудования
2. Было или стоит несколько видеоконтроллеров
WMI я думаю поможет
2bagie2 что такое WMI?
Цитата: TDK
2Phodopus встречный вопросы тогда как определить какой сейчас используется профиль? Как тогда определить сколько стоит видеоконтроллеров?
1. CurrentControlSet
2. Например, EnumDisplayDevices().
Можете и WMI использовать если это вас устроит, я не смотрел что же в итоге интересует. А вообще база для работы с оборудованием это набор функций SetupAPI.