Já passou algum tempo desde a última vez que usei isso, mas lembro de ter corrigido problemas semelhantes usando a Ferramenta de espera do MCE no Windows 7, apesar de não suportar oficialmente essa versão do Windows.
Quando inicializo meu computador com Windows 7, ele fica inativo se eu parar de usá-lo - primeiro, o protetor de tela é ativado e o computador entra no modo de suspensão após um determinado período de tempo. Esse é o comportamento esperado.
No entanto, depois de usar o computador por algum tempo sem reiniciar (depois de cerca de um dia), notei que ele pára de ficar inativo - o protetor de tela não acende e o computador não dorme , não importa quanto tempo fique sem uso.
Confirmei que o timer inativo está aumentando conforme o esperado por meio de GetLastInputInfo. No entanto, parece que algo está interferindo nos resultados de CallNtPowerInformation. A cada 14 ou 16 segundos, o valor TimeRemaining retorna para o seu valor máximo quando eu consultar SystemPowerInformation.
Eu usei o SysInternals Process Monitor para detectar quaisquer eventos incomuns que possam estar acontecendo para acionar essa redefinição, mas surgem vazios. Alguém sabe exatamente quais são as possíveis causas da redefinição do TimeRemaining ao seu valor máximo?
Tenho quase certeza de que não é meu mouse, teclado ou rede que está enviando eventos espúrios, porque eu desativei cada um deles e o problema continua a ocorrer. Isso também redefinir o cronômetro GetLastInputInfo, o que não está acontecendo. Eu estou procurando algo que afeta SystemPowerInformation TimeRemaining, mas não afeta GetLastInputInfo.
Obrigado.
Já passou algum tempo desde a última vez que usei isso, mas lembro de ter corrigido problemas semelhantes usando a Ferramenta de espera do MCE no Windows 7, apesar de não suportar oficialmente essa versão do Windows.