SendMessage/SC_MONITORPOWER nicht schalten Sie den monitor AUF, wenn unter Windows 8

Ich schalte meine Monitore an-und ausschalten, indem Sie den folgenden 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);

Diese verwendet, um die Arbeit als gedacht, aber nach der Installation von Windows 8 (Ich nehme an, dies ist der Grund, da ich sehe, haben andere das gleiche Problem) drehen Sie den Bildschirm auf, wird nicht funktionieren. Ich kann immer noch ausgeschaltet werden, aber egal wie oft ich laufen SendMessage() mit MonitorTurnOn, ich habe immer noch die Maus bewegen oder eine Taste drücken, um die Bildschirme wieder auf.

Irgendwelche Vorschläge, wie man diese Arbeit auf Windows 8?

  • ist es möglich, shut off nur einen bestimmten monitor?
  • Nicht soweit ich weiß.
InformationsquelleAutor Erlend D. | 2012-09-24
Schreibe einen Kommentar