是否可以使用WinAPI / C#将单个监视器置于睡眠状态?

时间:2010-12-14 19:45:48

标签: c# monitor sleep-mode

通过使用Windows API,可以将监视器置于睡眠模式:

[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

然后

SendMessage(this.Handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)2);

运行上述命令时,两台显示器都会进入睡眠状态。是否可以仅影响多个连接的监视器中的一个?

2 个答案:

答案 0 :(得分:2)

根据this ...没有。

原因是API关闭了被定义为两个监视器的显示器。关闭特定的显示器将是硬件配合。

答案 1 :(得分:2)

我确实不知道你是否可以让一个特定的显示器进入睡眠状态..但是你可以通过将显示数量改为一个(假设你有2个)来实现这一点,你想要清醒。另一个将在大约一分钟后自动进入休眠状态(大多数监视器在断开连接后大约一分钟后进入省电模式)。您基本上是以编程方式断开监视器。您可以在需要时激活它。

然而,这种方法会产生其他影响,一旦你开始玩它就会知道。