使用python脚本关闭我的2台显示器之一

时间:2017-02-24 20:49:20

标签: python windows winapi monitor win32gui

我有2台显示器,当我在主显示器上观看电影时,我希望另一台显示器关闭。 我不想按下电源按钮,因为在黑暗中很难找到它。

此代码关闭两个屏幕

class Mode(Object):
    STAND_BY = 1
    TURN_ON = -1
    TURN_OFF = 2

SC_MONITORPOWER = 0xF170 

win32gui.SendMessage(win32con.HWND_BROADCAST, win32con.WM_SYSCOMMAND, SC_MONITORPOWER, Mode.TURN_OFF)

我也尝试以这种方式处理我的其他屏幕:

monitors = win32api.EnumDisplayMonitors(None, None)
(hSecondMon, _, (_, _, secondRight, secondButtom)) = monitors[1]
win32gui.SendMessage(hSecondMon, win32con.WM_SYSCOMMAND, SC_MONITORPOWER, Mode.TURN_OFF)

但它没有用。

然而,我能够将其颜色改为黑色:

monitors = win32api.EnumDisplayMonitors(None, None)
(_, _, (_, _, primRight, _)) = monitors[0]
(hSecondMon, _, (_, _, secondRight, secondButtom)) = monitors[1]

hDeskDC = win32gui.CreateDC(win32api.GetMonitorInfo(hSecondMon)['Device'], None, None)
brush = win32gui.GetSysColorBrush(win32con.COLOR_BACKGROUND)
win32gui.FillRect(hDeskDC, (0, 0, secondRight - primRight, secondButtom), brush)

但这还不够好,因为只要我的桌面背景发生变化,它就会重新显示第二个屏幕。

0 个答案:

没有答案