在python中监视显示状态?

Windows如何更改显示器电源状态?


看来,当Windows想要启动屏幕保护程序或关闭显示器时,它会发送一个WM_SYSCOMMAND到最上面的窗口,并带有一个wParamSC_SCREENSAVE (启动屏幕保护程序)或一个wParamSC_MONITORPOWER和一个lParam为1或2(关闭显示器)。 这条消息将被传递给DefWindowProc ,它将实际执行该操作。 所以,如果你的窗口恰好是最顶层的窗口,你可以拦截这些事件并忽略它们(或者在将它们传递给DefWindowProc之前做其他任何事情)。

在Windows Vista上,似乎有一种更直观,更可靠的方式来了解显示器电源状态。 您调用RegisterPowerSettingNotification来通知系统向您的窗口发送WM_POWERBROADCAST消息,其中包含一个wParamPBT_POWERSETTINGCHANGE和一个指向POWERBROADCAST_SETTING结构的lParam

我无法测试其中任何一个,因为我目前没有附近有Windows的计算机。 不过,我希望他们指出你的方向是正确的。

参考文献:

  • 旧新事物:在黑暗中摸索并绊倒错误的解决方案
  • 递归钩子 - borland.public.delphi.nativeapi.win32 | Google网上论坛
  • 注册电源事件(Windows)
  • 链接地址: http://www.djcxy.com/p/47467.html

    上一篇: Monitoring a displays state in python?

    下一篇: Is there any way to detect the monitor state in Windows (on or off)?