我使用以下代码来打开和关闭我的监视器:
[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后 (我认为这是原因,因为我看到其他人也有同样的问题),打开屏幕就无法正常工作。我仍然可以关闭它,但无论我运行多少次带有MonitorTurnOn的SendMessage()函数,我仍然需要移动鼠标或按键才能重新打开显示器。
有没有关于如何在Windows 8上使其正常工作的建议?