1

I have a 16 monitor wide display wall. They are all 42 inch LCD televisions. They are all run from the same computer. They all run powerpoint and have the exact same outline/design, but with the information on the powerpoint varying from each one. I want to have a screensaver turn on after no user input is detected after a specified time. I have a program that I programmed to turn on a custom screensaver run for a specific time and then shutdown.

The issue I am having is either creating a program that can detect when no user input is present or to run it from the task scheduler. Microsoft makes it impossible for the computer to be either idle or to turn on the screensaver because of ES_DISPLAY_REQUIRED.

Is there way to disable the the ES_DISPLAY_REQUIRED function from the registry for the entire computer. Or perhaps a way to read the screensaver timeout function and have that call in the program I made to run.Aka despite the ES_DISPLAY_REQUIRED preventing the screensaver from starting, the countdown to the screensaver still runs and my program runs when it counts down to zero.

The reason I want to do this is that even though they are all LCD televisions I want to prevent burn-in on the monitors, They all shut down at night, and only run for 12 hours a day, but I rather be cautious than risk damage a very expensive set of televisions. Is their any third party software that does this? Specifically for a multimonitor application.

Also as a side note, I am running 3 AMD FirePro W600 graphics cards, and have Display Fusion software for additional support features.

1 Answer 1

0

not a full answer, but you can programmatically control the ES_DISPLAY_REQUIRED execution state with SetThreadExecutionState().

More info from MS: SetThreadExecutionState function

Example:

// Television recording is beginning. Enable away mode and prevent
// the sleep idle time-out.
//
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);

//
// Wait until recording is complete...
//

//
// Clear EXECUTION_STATE flags to disable away mode and allow the system to idle to sleep normally.
//
SetThreadExecutionState(ES_CONTINUOUS);

Related info on StackOverflow: https://stackoverflow.com/questions/4964302/programmatically-reset-windows-xp-idle-time

1
  • I looked at the various examples involving this and I don't believe this will work. The program will effectively have to disable or suppress functions from powerpoint. I don't even want to think of the possible errors that might occur, as well as the fact that running Powerpoint on all 16 monitors has shown to be somewhat difficult with the program lagging at times, and even shutting down unexpectedly. I just want to read the count down for the screensaver or the inactivity timer, but not use Microsoft's built in idle task scheduler function.
    – Greg M
    May 16, 2013 at 16:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .