How to register a global hotkey for your application in C#

How to register a global hotkey for your application in C#

Register a hotkey for your application that can be triggered even if your form is minimized and does not have focus. More »

How to download a file in C# (progressbar and download speed)

How to download a file in C# (progressbar and download speed)

Learn how to download files in C# while displaying the percentage and the download speed. More »

UDP hole punching implementation in C#

UDP hole punching implementation in C#

Learn how to implement UDP hole punching so you can make your clients life a lot easier by not forcing them to open ports on their end. More »

 

How to keep your screen always on

Monitor

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
ES_AWAYMODE_REQUIRED (0x00000040)
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.

ES_CONTINUOUS(0x80000000)
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.

ES_DISPLAY_REQUIRED(0x00000002)
Forces the display to be on by resetting the display idle timer.

ES_SYSTEM_REQUIRED(0x00000001)
Forces the system to be in the working state by resetting the system idle timer.

Share on FacebookTweet about this on TwitterShare on Google+Share on StumbleUponShare on LinkedInShare on RedditPin on PinterestShare on TumblrDigg thisPrint this pageEmail this to someone

Leave a Reply

Your email address will not be published. Required fields are marked *