Para começarmos vamos criar um novo aplicativo no Delphi e com o nosso formulário aberto colocaremos dois botões de sua preferência, e um componente tipo Memo. Então mãos à obra.


No primeiro botão colocaremos o seguinte código:

 

procedure TForm1.Button1Click(Sender: TObject);

var

// Declaraçao de uma variável tipo TSystemPowerStatus,

SPS: TSystemPowerStatus;

begin

Memo1.Clear;

with Memo1.Lines do

begin

// Chcamada da API (declarada na unit Windows.pas)

GetSystemPowerStatus(SPS);

// ---------------------------------------------------------------------------//

Add('Informações da capção de Energia: ');

case SPS.ACLineStatus of

0:

Add('ESTE COMPUTADOR ESTA CONECTADO A UMA BATEIRA');

1:

Add('ESTE COMPUTADOR NAO ESTA SENDO ALIMENTADO POR BATERIA');

255:

Add('IMPOSSIVEL SE TER UM STATUS PRECISO');

end;

Add('');

// ---------------------------------------------------------------------------//

Memo1.Lines.Add('INFORMAÇÕES DE DA CARGA DA BATERIA:');

case SPS.BatteryFlag of

1:

Add('OK - A bateria esta sendo carregada 66%');

2:

Add('OK - La batterie est chargée en-deça de 33%');

4:

Add('ATENÇÃO - sua bateria esta somente 5% da carga total !');

8:

Add('A bateria atualmente esta carregando');

128:

Add('O sistema não comporta bateria');

255:

Add('Impossivel precisar o nivel da carga.');

end;

Add('');

// ---------------------------------------------------------------------------//

Memo1.Lines.Add('Informações sobre a porcentagem do nivel da bateria:');

if SPS.BatteryLifePercent < 255 then

Add('Este computador esta com ' + IntToStr(SPS.BatteryLifePercent)

+ '% de carga disponivel')

else

Add('Impossivel determinar a porcentagemd ecarga restante.');

Add('');

// ---------------------------------------------------------------------------//

Add('Informações sobre o tempo restante:');

if SPS.BatteryLifeTime <> -1 then

Add('Tempo restante (segundos) ' + IntToStr(SPS.BatteryLifeTime)

+ ' segundos até a parada')

else

Add('Impossiveldeterminar o nivel da bateria');

Add('');

// ---------------------------------------------------------------------------//

Add('Informações de carga até a parada total:');

if SPS.BatteryLifeTime <> -1 then

Add('Tempo restante (segundos) ' + IntToStr(SPS.BatteryFullLifeTime)

+ ' tempo até a parada total')

else

Add('Impossivel determinar o tempo restante.');

end;

end;

 

No Segundo botão colocaremos o seguinte código:

procedure TForm1.Button2Click(Sender: TObject);

begin

    close;

end;

Veja o resultado final :




Agora você já pode prever o quanto de bateria tem o computador em que esta rodando o seu sistema. Prevenir paradas inesperadas em seu sistema é uma excelente ferramenta para manter a integridade de seu banco de dados.

Baixe neste posto o exemplo completo.

 

Um abraço

Até o próximo artigo