Executando protetor de tela, enquanto o Powerpoint está aberto

1

Eu tenho uma parede de monitor larga de 16 monitores. Eles são todos os televisores LCD de 42 polegadas. Eles são todos executados no mesmo computador. Todos eles executam powerpoint e têm exatamente o mesmo contorno / design, mas com as informações sobre o powerpoint variando de cada um. Quero que um protetor de tela seja ativado depois que nenhuma entrada do usuário for detectada após um tempo especificado. Eu tenho um programa que eu programou para ativar um protetor de tela personalizado executado por um tempo específico e, em seguida, o desligamento.

O problema que estou tendo é criar um programa que possa detectar quando nenhuma entrada do usuário está presente ou executá-lo a partir do agendador de tarefas. Microsoft torna impossível para o computador estar ocioso ou ativar o protetor de tela devido a ES_DISPLAY_REQUIRED.

Existe uma maneira de desativar a função ES_DISPLAY_REQUIRED do Registro para o computador inteiro. Ou talvez uma maneira de ler a função de tempo limite do protetor de tela e ter essa chamada no programa que fiz para executar.Aka apesar do ES_DISPLAY_REQUIRED impedir que o protetor de tela seja iniciado, a contagem regressiva para o protetor de tela ainda é executada e meu programa é executado quando é reduzido a zero.

A razão pela qual eu quero fazer isso é que mesmo que eles sejam todos televisores LCD eu quero evitar o burn-in nos monitores, eles todos desligam durante a noite, e só funcionam por 12 horas por dia, mas eu prefiro estar cauteloso do que risco de danificar um conjunto muito caro de televisores. O seu software de terceiros faz isso? Especificamente para um aplicativo multimonitor.

Além disso, como nota lateral, estou executando três placas de vídeo AMD FirePro W600 e tenho o software Display Fusion para recursos de suporte adicionais.

    
por Greg M 15.05.2013 / 18:40

1 resposta

0

não é uma resposta completa, mas você pode controlar programaticamente o estado de execução ES_DISPLAY_REQUIRED com SetThreadExecutionState() .

Mais informações do MS: Função SetThreadExecutionState

Exemplo:

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

Informações relacionadas no StackOverflow: link

    
por 15.05.2013 / 19:00