Die Community zu .NET und Classic VB.
Menü

FAQ 0098: Wie kann ich verhindern, daß der Monitor in den Standby-Modus schaltet?

 von 

Frage 

Zur Laufzeit meiner Anwendung wechselt der Monitor in den Standby-Modus. Wie kann ich das verhindern?

Antwort  

Hierfür gibt es die API-Funktion SetThreadExecutionState ( MSDN Library).
Das Flag ES_DISPLAY_REQUIRED setzt einmalig den internen Timer für den Monitor-Standby-Modus zurück. Übergibt man nun zusätzlich das Flag ES_CONTINUOUS, so unterbricht Windows den Timer bis zu einem weiteren Aufruf mit dem Flag ES_CONTINUOUS, diesmal aber ohne ES_DISPLAY_REQUIRED.

Const ES_CONTINUOUS As Long = &H80000000
Const ES_DISPLAY_REQUIRED As Long = &H2&

Declare Sub SetThreadExecutionState Lib "kernel32.dll" ( _
            ByRef esFlags As Long)

Listing 1: Deklarationen

Function DeactivateMonitorStandbyTimer() As Boolean
    DeactivateMonitorStandbyTimer = CBool(SetThreadExecutionState( _
                                ES_CONTINUOUS Or ES_DISPLAY_REQUIRED))
End Function

Function ActivateMonitorStandbyTimer() As Boolean
    ActivateMonitorStandbyTimer = CBool(SetThreadExecutionState( _
                                ES_CONTINUOUS))
End Function

Listing 2: Standby-Timer ab- und einschalten

Ihre Meinung  

Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.