Ниже пример кода показывает, как использовать функцию EnumDisplayDevices, чтобы получить информацию о мониторе.
BOOL GetDisplayMonitorInfo(int nDeviceIndex, LPSTR lpszMonitorInfo)
{
FARPROC EnumDisplayDevices;
HINSTANCE hInstUser32;
DISPLAY_DEVICE DispDev;
char szSaveDeviceName[32];
BOOL bRet = TRUE;
hInstUser32 = LoadLibrary("User32.DLL");
if (!hInstUser32) return FALSE;
// Получим адрес функции EnumDisplayDevices
EnumDisplayDevices = (FARPROC)GetProcAddress(hInstUser32,
"EnumDisplayDevicesA");
if (!EnumDisplayDevices)
{
FreeLibrary(hInstUser32);
return FALSE;
}
ZeroMemory(&DispDev, sizeof(DISPLAY_DEVICE));
DispDev.cb = sizeof(DISPLAY_DEVICE);
// После первого вызова EnumDisplayDevices,
// DispDev.DeviceString несет в себе название адаптера
if (EnumDisplayDevices(NULL, nDeviceIndex, &DispDev, 0))
{
lstrcpy(szSaveDeviceName, DispDev.DeviceName);
// После второго вызова, DispDev.DeviceString несет в себе
// название монитора для этого устройства
EnumDisplayDevices(szSaveDeviceName, 0, &DispDev, 0);
lstrcpy(lpszMonitorInfo, DispDev.DeviceString);
}
else } |