SendMessage / SC_MONITORPOWER не будет включать монитор при работе в Windows 8
Я включаю и выключаю свои мониторы, используя следующий код:
[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 (Я предполагаю, что это причина, так как я вижу, что другие имеют ту же проблему) Включение экрана не будет работать. Я все еще могу отключить его, но независимо от того, сколько раз я запускаю SendMessage () с MonitorTurnOn, мне все равно приходится перемещать мышь или нажимать клавишу, чтобы снова включить мониторы.
Любые предложения о том, как заставить это работать на Windows 8?