有什么办法来检测Windows中的监视器状态(开或关)?

有谁知道是否有一个API可以在Windows(XP / Vista / 2000/2003)中获得当前的监视器状态(打开或关闭)?

我所有的搜索似乎都表明没有真正的方法来做到这一点。

此线程尝试使用根据Microsoft文档的GetDevicePowerState不适用于显示设备。

在Vista中,我可以收听GUID_MONITOR_POWER_ON,但手动关闭显示器时似乎没有发生事件。

在XP中,我可以挂接到WM_SYSCOMMAND SC_MONITORPOWER ,查找状态2.这仅适用于系统触发断电的情况。

WMI Win32_DesktopMonitor类似乎也没有帮助。

编辑 :这是关于comp.os.ms-windows.programmer.win32的讨论,指出没有可靠的方法来做到这一点。

任何人有任何其他想法?


GetDevicePowerState有时适用于显示器。 如果存在,您可以打开。 LCD设备。 完成后立即关闭它。

本质上,你不走运 - 没有可靠的方法来检测显示器的电源状态,没有写设备驱动程序,并过滤显示驱动器链上的所有电源IRP。 这也不是很可靠。


你可以连接网络摄像头,将它指向你的屏幕,并对你收到的图像做一些分析;)


在根据显示器状态做任何事情之前,请记住用户可以使用其他系统的远程桌面的计算机,这些计算机不需要连接到计算机的显示器 - 所以不要根据显示器状态关闭任何可视化。

链接地址: http://www.djcxy.com/p/47465.html

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

下一篇: How to block YouTube watermark link on embedded YouTube video