gpt4 book ai didi

c# - SendMessage/SC_MONITORPOWER 在运行 Windows 8 时不会打开监视器

转载 作者:可可西里 更新时间:2023-11-01 08:19:44 27 4
gpt4 key购买 nike

我使用以下代码打开和关闭我的显示器:

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

private const int WM_SYSCOMMAND = 0x0112;
private const int SC_MONITORPOWER = 0xF170;
private const int MonitorTurnOn = -1;
private const int MonitorShutoff = 2;

//Turn them off
SendMessage(f.Handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MonitorShutoff);

//Turn them on
SendMessage(f.Handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MonitorTurnOn);

这曾经按预期工作,但在安装 Windows 8 ( I assume this is the reason, since I see others have the same issue ) 后,打开屏幕将无法工作。我仍然可以将其关闭,但无论我使用 MonitorTurnOn 运行 SendMessage() 多少次,我仍然需要移动鼠标或按一个键才能重新打开监视器。

关于如何在 Windows 8 上运行它有什么建议吗?

最佳答案

我遇到了同样的问题,我找到的解决方案是移动鼠标:

mouse_event(MOUSEEVENTF_MOVE, 0, 1, 0, NULL);
Sleep(40);
mouse_event(MOUSEEVENTF_MOVE, 0, -1, 0, NULL);

它将唤醒显示器。早珠

关于c# - SendMessage/SC_MONITORPOWER 在运行 Windows 8 时不会打开监视器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12572441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com