Раньше, отменить отключения дисплея можно с помощью следующего кода:
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, NULL, SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETLOWPOWERACTIVE, 0, NULL, SPIF_SENDCHANGE);
Но в документации сказано, что значения первого параметра SPI_SETSCREENSAVEACTIVE и SPI_SETLOWPOWERACTIVE функции
SystemParametersInfo не поддерживаются начиная с Windows Server 2008 и Windows Vista. Для этих и более поздних версий операционных систем семейства Windows рекомендуется использовать
Registering for Power Events..
Но не понятно два момента:
1. Непонятно, как программно включить монитор в сообщении WM_POWERBROADCAST.
2. Как показывает опыт, сообщение WM_POWERBROADCAST приходить к окну с большим опозданием 1-2 секунды после выключения экрана монитора при регистрации сообщения питания монитора с параметром GUID_CONSOLE_DISPLAY_STATE.
Как решить перечисленные выше эти два момента?
Заранее благодарен