title: SendMessage/SC_MONITORPOWER won't turn monitor ON when running Windows 8
body: <p>I turn my monitors on and off by using the following code:</p>
  
  <pre><code>[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);
  </code></pre>
  
  <p>This used to work as intended, but after installing Windows 8 (<a href="http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Q_27853262.html" rel="noreferrer">I assume this is the reason, since I see others have the same issue</a>) turning the screen on won't work. I can still turn it off, but no matter how many times I run SendMessage() with MonitorTurnOn, I still have to move the mouse or press a key to get the monitors back on.</p>
  
  <p>Any suggestions on how to make this work on Windows 8?</p>