Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以编程方式关闭多个监视器_Python_C++_Python 3.x_Winapi_Multiple Monitors - Fatal编程技术网

Python 以编程方式关闭多个监视器

Python 以编程方式关闭多个监视器,python,c++,python-3.x,winapi,multiple-monitors,Python,C++,Python 3.x,Winapi,Multiple Monitors,我正在寻找一种通过编程关闭多个监视器的方法 注意:这并不意味着关闭所有监视器的电源 我目前能够使用当前环境编译的语言是python/C/C++。我知道C++的简单方式。 SendMessage(GetConsoleWindow(), WM_SYSCOMMAND, SC_MONITORPOWER, 2); 然而,这会关闭系统上所有的监视器,这不是我想要的结果 假设我有一个名为Application Window的窗口,现在我想关闭所有没有打开此应用程序窗口的监视器 注意:理想情况下,它可以用py

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

注意:这并不意味着关闭所有监视器的电源

我目前能够使用当前环境编译的语言是python/C/C++。我知道C++的简单方式。

SendMessage(GetConsoleWindow(), WM_SYSCOMMAND, SC_MONITORPOWER, 2);
然而,这会关闭系统上所有的监视器,这不是我想要的结果

假设我有一个名为Application Window的窗口,现在我想关闭所有没有打开此应用程序窗口的监视器

注意:理想情况下,它可以用python实现,但不需要

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

使用可以访问您提到的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文档:

你应使用:


好的,但是如何关闭特定的监视器呢?他说这很容易,就像。。。我只是用pythonyway复制了它,使用winapi所有的监视器都将被关闭。我看不到单独打开监视器的选项。是的,这很好,但不是我所要找的,这和C++解决方案是相同的,这不是我正在努力实现的。@ SZA请再阅读问题,如果你不能关闭监视器,除了关掉个别监视器,我也不会感到惊讶。Windows中的电源管理软件不需要这样做。要么所有监视器都处于省电模式,要么它们都没有。@RossRidge如果我要禁用监视器,在该监视器上打开的应用程序是否会移到另一个监视器上,或者它们是否会保留在该监视器/像素位置上?如果禁用监视器,Windows会将该监视器上的任何窗口移到另一个启用的监视器上。@RossRidge Mhm您认为像使显示器显示纯黑色屏幕保护程序这样的操作可能会起作用吗诀窍?看起来你链接的建议使用SetVCPFeature的答案应该会起作用,但我也无法让它起作用。GetPhysicalMonitorsFromHMONITOR只为我返回空句柄。
window = ctypes.windll.kernel32.GetDesktopWindow()