Кто-нибудь знает, есть ли API для получения текущего состояния монитора (вкл. или выкл.) в Windows (XP/Vista/2000/2003)?
Все мои поиски, похоже, указывают, что нет реального способа сделать это.
Этот поток пытается использовать GetDevicePowerState, который согласно Документы Microsoft не работают для устройств отображения.
В Vista я могу слушать GUID_MONITOR_POWER_ON, но я, похоже, не получаю события, когда монитор выключен вручную.
В XP я могу подключиться к WM_SYSCOMMAND
SC_MONITORPOWER
, ища статус 2. Это работает только в ситуациях, когда система отключает питание.
Класс WMI Win32_DesktopMonitor
тоже не помогает.
Изменить. Здесь обсуждение на comp.os.ms-windows.programmer.win32, указывающее, что есть нет надежного способа сделать это.
У кого-нибудь есть другие идеи?