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