Esecuzione di Screensaver, mentre Powerpoint è aperto


1

Ho un monitor da 16 monitor a parete. Sono tutti televisori LCD da 42 pollici. Vengono eseguiti tutti dallo stesso computer. Eseguono tutti powerpoint e hanno lo stesso schema / disegno esatto, ma le informazioni sul powerpoint variano da uno all'altro. Voglio attivare uno screensaver dopo che non è stato rilevato alcun input dell'utente dopo un periodo di tempo specificato. Ho un programma che ho programmato per attivare uno screensaver personalizzato eseguito per un tempo specifico e quindi lo spegnimento.

Il problema che sto riscontrando è la creazione di un programma in grado di rilevare quando non è presente alcun input dell'utente o di eseguirlo dall'utilità di pianificazione. Microsoft rende impossibile che il computer sia inattivo o che accenda lo screensaver a causa di ES_DISPLAY_REQUIRED.

Esiste un modo per disabilitare la funzione ES_DISPLAY_REQUIRED dal registro per l'intero computer. O forse un modo per leggere la funzione di timeout dello screensaver e avere quella chiamata nel programma che ho fatto per eseguire.Aka nonostante ES_DISPLAY_REQUIRED impedisca l'avvio dello screensaver, il conto alla rovescia per lo screensaver è ancora in esecuzione e il mio programma viene eseguito quando il conto alla rovescia si riduce a zero.

Il motivo per cui voglio fare questo è che anche se sono tutti televisori LCD che voglio impedire il burn-in sui monitor, si spengono tutti di notte e funzionano solo per 12 ore al giorno, ma preferisco essere più prudente del rischio danneggiare un set molto costoso di televisori. È il loro software di terze parti che lo fa? Specificamente per un'applicazione multimonitor.

Inoltre, come nota a margine, sto eseguendo 3 schede grafiche AMD FirePro W600 e ho il software Display Fusion per funzioni di supporto aggiuntive.

Risposte:


0

non è una risposta completa, ma è possibile controllare a livello di programmazione lo stato di esecuzione ES_DISPLAY_REQUIRED con SetThreadExecutionState().

Ulteriori informazioni da MS: funzione SetThreadExecutionState

Esempio:

// 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);

Informazioni correlate su StackOverflow: https://stackoverflow.com/questions/4964302/programmatical-reset-windows-xp-idle-time


Ho esaminato i vari esempi che lo riguardano e non credo che funzionerà. Il programma dovrà effettivamente disabilitare o sopprimere le funzioni da powerpoint. Non voglio nemmeno pensare ai possibili errori che potrebbero verificarsi, così come al fatto che l'esecuzione di Powerpoint su tutti e 16 i monitor ha dimostrato di essere in qualche modo difficile con il programma in ritardo a volte e persino lo spegnimento imprevisto. Voglio solo leggere il conto alla rovescia per lo screensaver o il timer di inattività, ma non utilizzare la funzione di pianificazione attività inattiva di Microsoft.
Greg M,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.