Se você não quiser usar ferramentas externas, você pode tocar na energia (trocadilho intencional) de consultas WMI e Eventos WMI. Consulta simples para executar a partir da linha de comando:
wmic path win32_battery get EstimatedChargeRemaining
lhe dará cobrança estimada. Agora, para obter leituras repetidas, você poderia simplesmente colocá-lo em um loop temporário, mas existe uma maneira melhor (ou extravagante :-): registrar um evento de bateria e um manipulador para ele - aqui é feito em Powershell (inicie o Powershell e cole / exec esses dois comandos):
$action={get-wmiobject -computername localhost -Query "Select * from Win32_Battery"|% {write-host battery charge: ($_.EstimatedChargeRemaining) time: $(get-date)}}
Register-WMIEvent -query "SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA 'Win32_Battery'" -messageData "battery charge" -sourceIdentifier "battery" -action $action
Isso produzirá uma linha de saída no seu console Powershell toda vez que um evento for gerado. Aqui está a saída do meu laptop:
battery charge: 67 time: 2014-12-11 17:59:53
battery charge: 68 time: 2014-12-11 18:00:23
battery charge: 69 time: 2014-12-11 18:01:23
battery charge: 70 time: 2014-12-11 18:01:53
battery charge: 71 time: 2014-12-11 18:02:53
battery charge: 72 time: 2014-12-11 18:03:23
battery charge: 73 time: 2014-12-11 18:04:23
battery charge: 74 time: 2014-12-11 18:05:14
battery charge: 75 time: 2014-12-11 18:06:04
battery charge: 76 time: 2014-12-11 18:06:44
Minha ação simples é apenas uma mensagem do console, mas você pode fazer o que quiser - por exemplo, escrever no arquivo
(nota: acho que o contador WMI vai para 99, que é mostrado como 100% / cheio na barra de status - então é 1% 'atrás' da tela)