在python中监视显示状态?
Windows如何更改显示器电源状态?
看来,当Windows想要启动屏幕保护程序或关闭显示器时,它会发送一个WM_SYSCOMMAND
到最上面的窗口,并带有一个wParam
的SC_SCREENSAVE
(启动屏幕保护程序)或一个wParam
的SC_MONITORPOWER
和一个lParam
为1或2(关闭显示器)。 这条消息将被传递给DefWindowProc
,它将实际执行该操作。 所以,如果你的窗口恰好是最顶层的窗口,你可以拦截这些事件并忽略它们(或者在将它们传递给DefWindowProc
之前做其他任何事情)。
在Windows Vista上,似乎有一种更直观,更可靠的方式来了解显示器电源状态。 您调用RegisterPowerSettingNotification
来通知系统向您的窗口发送WM_POWERBROADCAST
消息,其中包含一个wParam
的PBT_POWERSETTINGCHANGE
和一个指向POWERBROADCAST_SETTING
结构的lParam
。
我无法测试其中任何一个,因为我目前没有附近有Windows的计算机。 不过,我希望他们指出你的方向是正确的。
参考文献:
上一篇: Monitoring a displays state in python?
下一篇: Is there any way to detect the monitor state in Windows (on or off)?