Получение информации о мониторе

Ниже пример кода показывает, как использовать функцию 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    
{
        bRet = FALSE;
}

    FreeLibrary(hInstUser32);

    return bRet;
} 

 

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz