Tag Archives: SetThreadExecutionState

How to keep your screen always on

On most systems this can be configured by going to Control Panel --> Power Options --> Choose when to turn off the display, but there are always some situations that this solution will not suffice. As an exmaple, the last time I faced this problem, Active Directory’s settings were overriding my system’s settings, which caused my display to turn off every 5 minutes regardless of how much I tried to tweak it using the Power Options.

As a workaround I decided to create a small application that would just keep the screen from turning off. I decided to share it with you in case you ever find yourself in a similar position.

You can download the program here.

If you know a bit about programming you can take a look at the source code below that will give you an idea on how this is achieved.

The theory behind this solution is very simple. We are using the SetThreadExecutionState windows function to notify the system that the screen should stay on.

Flags Descriptions
Away mode should be used only by media-recording and media-distribution applications that must perform critical background processing on desktop computers while the computer appears to be sleeping. See Remarks.

Informs the system that the state being set should remain in effect until the next call that uses ES_CONTINUOUS and one of the other state flags is cleared.

Forces the display to be on by resetting the display idle timer.

Forces the system to be in the working state by resetting the system idle timer.