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?

Ответы на вопрос(4)

Ваш ответ на вопрос