Perso j'utilise Dev-C++ 4.0 et ton code ne compile pas. Question : à quoi correspond le fichier 'stdafx.h' ? Sinon j'ai réussi à partir d'un bout de code du site MSDN pour pouvoir afficher le nom de la carte graphique, le taux de rafraichissement et le numéro de version du driver. Voici le code :
#include <windows.h>
#include <cstdio>
#include <cstdlib>
typedef struct _DISPLAY_DEVICE
{
DWORD cb;
TCHAR DeviceName[32];
TCHAR DeviceString[128];
DWORD StateFlags;
TCHAR DeviceID[128];
TCHAR DeviceKey[128];
} DISPLAY_DEVICE, *PDISPLAY_DEVICE;
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
#define ENUM_CURRENT_SETTINGS 0x00000000
#define ENUM_REGISTRY_SETTINGS 0x00000001
int main (int argc, char**argv)
{
BOOL (WINAPI* pEnumDisplayDevices)(PVOID,DWORD,PVOID,DWORD);
BOOL (WINAPI* pEnumDisplaySettings)(PVOID,DWORD,PVOID);
(FARPROC)pEnumDisplayDevices = GetProcAddress(LoadLibrary("USER32"), "EnumDisplayDevicesA");
(FARPROC)pEnumDisplaySettings = GetProcAddress(LoadLibrary("USER32"), "EnumDisplaySettingsA");
if( pEnumDisplayDevices )
{
DISPLAY_DEVICE dd;
ZeroMemory(&dd, sizeof(dd));
dd.cb = sizeof(dd);
DEVMODE dm;
ZeroMemory(&dm, sizeof(dm));
dm.dmSize = sizeof(dm);
for( unsigned int i=0; (*pEnumDisplayDevices)(NULL, i, &dd, 0); i++ )
{
if( (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) &&
(dd.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) )
{
printf("Device name : %s\n", dd.DeviceString);
(*pEnumDisplaySettings)(dd.DeviceName, ENUM_CURRENT_SETTINGS, &dm);
printf("Driver version : %d\n", dm.dmDriverVersion);
printf("Vertical refresh rate : %d Hz\n", dm.dmDisplayFrequency);
break;
}
}
}
system("PAUSE");
return EXIT_SUCCESS;
}