Suspensão automática em computador inativo em nível de bateria específico

1

Posso criar uma tarefa no agendador de tarefas que começa quando um nível de bateria específico atinge o computador ocioso para entrar no modo de suspensão? O Windows oferece a opção de fazer com que o computador durma em um nível de bateria específico, mas não se importa se o laptop está ocioso ou não.

    
por labeebahmad32 02.08.2014 / 11:34

1 resposta

1

Eu entendi!

Eu fiz uma tarefa agendada que dispara quando o computador está ocioso e executa repetidamente um arquivo em lote que verifica se a bateria está descarregando e quantos carrega.

Se a bateria estiver descarregada (ou seja, o laptop não estiver conectado à rede elétrica) e a bateria estiver carregada 25% ou menos, ela colocará o computador imediatamente em repouso (ou hibernará, se já estiver ligado).

A tarefa é configurada para se repetir (ou seja, executar o arquivo em lote) a cada 5 minutos indefinidamente. Além disso, certifique-se de definir as seguintes condições:

Eubaseeimeuscriptemloteembattstat.bataqui: link

Você encontrará meu script abaixo.

@ECHO OFF

:: Localize variables
SETLOCAL

:: Use WMI to retrieve battery status information
FOR /F "tokens=*  delims="  %%A IN ('WMIC /NameSpace:"\root\WMI" Path BatteryStatus              Get PowerOnline^,RemainingCapacity  /Format:list ^| FIND "="')     DO SET  Battery.%%A
FOR /F "tokens=*  delims="  %%A IN ('WMIC /NameSpace:"\root\WMI" Path BatteryFullChargedCapacity Get FullChargedCapacity             /Format:list ^| FIND "="')     DO SET  Battery.%%A

:: Calculate runtime left and capacity
SET /A Battery.RemainingCapacity = ( %Battery.RemainingCapacity%00 + %Battery.FullChargedCapacity% / 2 ) / %Battery.FullChargedCapacity%

:: Display results
IF /I "%Battery.PowerOnline%"=="FALSE" (
    IF %Battery.RemainingCapacity% LEQ 25 (
        Rundll32.exe Powrprof.dll,SetSuspendState Sleep
    )
)
GOTO:EOF

:: End localization
IF "%OS%"=="Windows_NT" ENDLOCAL
    
por 24.09.2014 / 11:39