Мониторинг состояния дисплеев в python? - PullRequest
2 голосов
/ 30 ноября 2008

Как узнать, когда Windows меняет состояние питания монитора?

1 Ответ

5 голосов
/ 30 ноября 2008

Похоже, что когда Windows хочет запустить заставку или выключить монитор, она отправит WM_SYSCOMMAND в самое верхнее окно с wParam из SC_SCREENSAVE (для запуска заставки) или wParam из SC_MONITORPOWER и lParam из 1 или 2 (для выключения монитора). Это сообщение затем будет передано DefWindowProc, который фактически выполнит действие. Таким образом, если ваше окно окажется самым верхним, вы можете перехватывать эти события и игнорировать их (или делать что-либо еще, прежде чем передать их в DefWindowProc).

В Windows Vista существует более интуитивный и надежный способ узнать состояние питания монитора. Вы звоните RegisterPowerSettingNotification, чтобы сказать системе, чтобы она отправила в ваше окно сообщение WM_POWERBROADCAST с wParam из PBT_POWERSETTINGCHANGE и lParam, указывающим на POWERBROADCAST_SETTING структуру.

Я не могу проверить ни один из них, так как в настоящее время у меня нет компьютера с Windows поблизости. Я надеюсь, однако, они указывают вам правильное направление.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...