Windows 7 在Win7上检测监视器关闭

Windows 7 在Win7上检测监视器关闭,windows-7,monitor,power-management,Windows 7,Monitor,Power Management,基于Win7的信息亭,职员可访问的开关关闭显示器电源,我的任务是检测到这一点,根据其他因素,要么有序关机,要么关机/重启,要么什么都不做。如果我对物理设计有任何意见,我会做不同的事情,但是。。。这就是我必须处理的问题。我已经找到了一些不同的方法来检测监视器是否断电,但是没有一种有效。我更喜欢被发送事件,而不是每秒轮询一次 Screen.AllScreens.Length即使在显示器断电时也会继续返回1 SystemEvents.DisplaySettingsChanged未被调用 SystemE

基于Win7的信息亭,职员可访问的开关关闭显示器电源,我的任务是检测到这一点,根据其他因素,要么有序关机,要么关机/重启,要么什么都不做。如果我对物理设计有任何意见,我会做不同的事情,但是。。。这就是我必须处理的问题。我已经找到了一些不同的方法来检测监视器是否断电,但是没有一种有效。我更喜欢被发送事件,而不是每秒轮询一次

  • Screen.AllScreens.Length即使在显示器断电时也会继续返回1
  • SystemEvents.DisplaySettingsChanged未被调用
  • SystemEvents.PowerModeChanged未被调用
  • 具有GUID\u会话\u显示\u状态的RegisterPowerSettingNotification不会产生任何消息(但后来我发现一些情况,使我认为在Windows 8之前不支持GUID\u会话\u显示\u状态-正确吗?)
  • GUID_MONITOR_POWER_ON的RegisterPowerSettingNotification在启动时为我提供一条消息,但在监视器断电(或监视器重新通电)时不会提供WM_POWERBROADCAST消息。我对此寄予厚望,因为doc女士实际上说“显示器是开着的还是关着的 由用户或系统的屏幕消隐功能执行。”这在“移动PC”部分,我们是操作系统的桌面版本,因此可能不适用于我们
  • 有没有其他方法可以检测监视器是否已关闭?或者常见的问题,使它看起来好像不工作,这可能会影响我的测试

    我必须弄清楚如何说VESA DDC(从C#)吗?我想我需要弄清楚的是如何发送一个有效的命令——任何响应都意味着监视器是开着的,没有响应就意味着它是关着的