Turn of the monitor in Windows (C/C++)


#1

Guten Morgen,

Jubiläumspost, 1010, das ist, binär gelesen, 10 also 2. Ich hätte eine Frage, und zwar möchte ich ein Programm schreiben, welches den Monitor deaktiviert, um Energie zu sparen, bis der Benutzer eine Eingabe macht (welche, weiß ich noch nicht) - nichts, was nicht schon einmal gefragt wurde:

c++ - Turn off the monitor? - Stack Overflow

1.) Kann mir jemand bitte den obigen Code erklären, vielleicht Zeile für Zeile (oder spalten-/blockweise), ich verstehe ihn nämlich nicht!!! Bitte, bitte!!
2.) Wie wann wo aktiviere ich den Monitor wieder am geschicktesten, wenn der Benutzer welche Eingabe macht?

Vielen Dank euch!


#2

Ist die Frage noch relevant? Ich bin gerade drüber gestolpert und finde es lustig dass man es so machen kann - musste es gleich ausprobieren :wink:

Zu 1): Relevant ist “nur” der Antwort-Post mit dem Befehl
SendMessage(handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
Der Code des Themenstarters kommt mir durchaus unleserlich vor. Nach etwas Überlegen tut er meiner Meinung nach folgendes:

  • Es wird eine Konsole geöffnet.
  • Dort wird solange auf Strg+Alt+L gewartet und dann “LockWorkStation()” aufgerufen - vermutlich um den Monitor zu deaktivieren.
  • Es wird ebenso auf “Strg+E” gewartet und dann das Programm beendet.

Zu 2): Aktivieren geht über
SendMessage(handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
Die Frage ist eher in welches Programm man das verpacken will. Zum REaktivieren des Monitors kann man eigentlich nur auf Tastatur und/oder Maus zurückgreifen. Da ist eine Methodik á la “Warte bis X gedrückt wurde” durchaus angebracht.