Wie kann ich aufwache mein Windows einmal Monitore von Energieeinstellungen ausgeschaltet?

StackOverflow https://stackoverflow.com/questions/332649

  •  22-07-2019
  •  | 
  •  

Frage

Also mein Vista-Rechner eingestellt ist es die Monitore nach 10 Minuten auszuschalten. (Hinweis: Maschine nicht unterbrochen ist, oder hibernated)

Ich habe eine .NET-Anwendung ausgeführt wird, die zu einem bestimmten Zeitpunkt zu „wake“ das System benötigt. Als Mensch, bewegen Sie einfach die Maus oder eine Taste drücken. Wie mache ich das programmatisch?

Ich habe versucht: programmatisch den Cursor einstellen; unter Verwendung von „Tastaturbefehle“; und sogar pinvoking Create zu entsperren (auch wenn es nicht ausgesetzt ist) in der Hoffnung, dass das wäre etwas auslösen.

Im Idealfall Code in C # wäre toll, aber der richtige Win-API ausreichen würde.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Es soll möglich sein Monitorleistung zu steuern, indem Systembefehl Senden von Nachrichten wie folgt. Beachten Sie, dass dies auf XP getestet wird, kann Vista die Dinge geändert haben etwas, so dass Sie es testen werden müssen, und lassen Sie uns wissen.

Dieser Code ist in VB aber Sie können den Win32-API-Aufruf sehen, dass es verwendet. Sie benötigen einen Fenstergriff an die Funktion übergeben, damit Ihr Code ein Fenster müssen erstellt die Nachricht zu verarbeiten (nur um es an die Standardfensterverarbeitungsfunktion durchlaufen).

Const SC_MONITORPOWER As Integer = &HF170
Const WM_SYSCOMMAND As Short = &H112S
Private Function SendMessage(
    ByVal Handle As Int32,
    ByVal wMsg As Int32,
    ByVal wParam As Int32,
    ByVal lParam As Int32) As Int32
End Function
Sub MonStandBy(hWnd as Int32)
    SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, 1)
End Sub
Sub MonOff(hWnd as Int32)
    SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, 2)
End Sub
Sub MonOn(hWnd as Int32)
    SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, -1)
End Sub
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top