Prevents the system from entering sleep or turning off the display while the current application is running
#include <WinAPIProc.au3>
_WinAPI_SetThreadExecutionState ( $iFlags )
$iFlags | The thread's execution requirements. This parameter can be one or more of the following values. $ES_AWAYMODE_REQUIRED $ES_CONTINUOUS $ES_DISPLAY_REQUIRED $ES_SYSTEM_REQUIRED $ES_USER_PRESENT |
Success: | The value is the previous thread execution state. |
Failure: | 0. |
The _WinAPI_SetThreadExecutionState() function cannot be used to prevent the user from putting the computer to sleep.
Applications should respect that the user expects a certain behavior when they close the lid on their laptop or press the power button.
This function does not stop the screen saver from executing.
According to Microsoft Docs $ES_USER_PRESENT should not be used, and $ES_AWAYMODE_REQUIRED should be used only when absolutely necessary.
Constants are defined in APIProcConstants.au3
Search SetThreadExecutionState in MSDN Library.
#include <MsgBoxConstants.au3>
#include <WinAPIProc.au3>
_Example()
Func _Example()
; disable ScreenSaver and other windows sleep features
_WinAPI_SetThreadExecutionState(BitOR($ES_DISPLAY_REQUIRED, $ES_CONTINUOUS, $ES_SYSTEM_REQUIRED, $ES_AWAYMODE_REQUIRED))
MsgBox($MB_OK, 'Testing', 'Close this tester window when you be sure that your ScreeSaver not runing.')
; back to normal windows behavior
_WinAPI_SetThreadExecutionState($ES_CONTINUOUS)
EndFunc ;==>_Example