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

C# 是否可以使用WinAPI/C将单个监视器置于睡眠状态?,c#,monitor,sleep-mode,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); 运行上述命令时,两个监视器都进入睡眠状态。是否可能

通过使用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);
运行上述命令时,两个监视器都进入睡眠状态。是否可能只影响多个连接的监视器中的一个?

根据…否


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

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


但是,这种方法还有其他含义,一旦开始使用它,您就会知道。

就像移动第二个监视器上的窗口:)@Erlend:如果您已经做到了这一点。。你能把你是如何做到这一点的吗。。我目前正在寻找类似的解决方案。。虽然我已经提出了一种方法。。想知道你是怎么做到的。。如果有的话……不幸的是,我没能做到这一点。