通过编程为多个监视器供电

Powering off multiple monitors programmatically

本文关键字:监视器 编程      更新时间:2023-10-16

我正在寻找一种通过编程方式关闭多个监视器的方法。

注意:这并不意味着关闭所有监视器。

我目前能够使用当前的环境进行编译的语言是python/c/c 。我知道

的简单C 方式
SendMessage(GetConsoleWindow(), WM_SYSCOMMAND, SC_MONITORPOWER, 2);

但是,这取消了系统上的所有监视器,这不是我追求的结果。

假设我有一个带有"应用程序窗口"的窗口,现在我想关闭所有没有此应用程序窗口的显示器。

注意:理想情况下它可以使用python实施,但是不需要。

编辑:发现了这个,但是我无法重新创建它并具有所需的功能。

CPP如何关闭特定的显示器?

使用CTYPES您可以访问您提到的Winapi功能:

import ctypes
WM_SYSCOMMAND = 0x0112
SC_MONITORPOWER = 0xF170
window = ctypes.windll.kernel32.GetConsoleWindow()
ctypes.windll.user32.SendMessageA(window, WM_SYSCOMMAND, SC_MONITORPOWER, 2);

MSDN文档:

  • sendmessage
  • getConsolewindow
  • wm_syscommand

您应该使用getDesktopwindow:

window = ctypes.windll.kernel32.GetDesktopWindow()