如何使用Python检查设备的显示是否打开/关闭?

时间:2015-11-26 09:59:15

标签: python hardware

我想编写一个Python脚本来检查我的设备是否有显示器以及该显示器是打开还是关闭。

我用谷歌搜索,有一个名为" WMI"的第三方库,但它只能得到一些信息,比如CPU / HDD /进程/线程,所以我很困惑。

我正在使用Windows 10,以防万一。

是否可以通过Python获取那种低级硬件信息,如果是,我该怎么办?

1 个答案:

答案 0 :(得分:0)

看起来Windows并没有办法告诉您显示器是打开还是关闭。 WMI Win32_DesktopMonitor类具有“可用性”属性,但这似乎不会因更改监视器状态而受到影响。我使用以下python脚本测试了这个:

import wmi # pip install WMI
import win32gui, win32con
SC_MONITORPOWER = 0xF170

wmic = wmi.WMI()

def powersave():
    # Put the monitor to Off.
    win32gui.SendMessage(win32con.HWND_BROADCAST, win32con.WM_SYSCOMMAND, SC_MONITORPOWER, 2)
    # Get the monitor states
    print([monitor.Availability for monitor in wmic.Win32_DesktopMonitor()])

if __name__ == '__main__':
    powersave()

SC_MONITORPOWER参数为documented here

不幸的是,我的显示器的结果总是为3,这意味着它“开启”,即使它在睡眠模式下实际关闭或物理关闭也是如此。

根据您的要求,您可能只想发送广播消息以断言您想要的电源状态,而不需要检查当前状态。