четверг, 26 апреля 2012 г.

Заряд батареи компьютера

У меня постоянно выключается ноутбук из-за того, что я не успеваю или забываю подключиться к зарядному устройству. Я не захотел пользоваться сторонними программами, а написал свою.
Использую переменную sys типа  TSystemPowerStatus. Функция GetSystemPowerStatus вернет  состояние батареи в переменную. У этой переменной появились методы.:
Я покажу только самые важные для нас.  
BatteryLifePercent: byte -Оставшийся ресурс батареи в процентах
BatteryLifeTime: DWORD -Оставшееся время в секундах
ACLineStatus: byte -Подключение к сети. Если вернет 1, то компьютер подключен к зарядному устройству.
Форма нам не нужна, скроем ее на событии формы OnCreate:

procedure TForm3.FormCreate(Sender: TObject);
begin
Application.ShowMainform:=false;
end;
Установим на форму 1 таймер. Свойство interval я установил 180000 (3 минуты), чтобы проверка на количество заряда проходила каждые 3 минуты.

Теперь сам код проверки. Для события таймера OnTimer пишем следующий код: 

procedure TForm3.Timer1Timer(Sender: TObject);
var
Sys: TSystemPowerStatus; 
begin
GetSystemPowerStatus(sys); //Получаем сведения о батарее
if sys.ACLineStatus=1 then // Если подключены к сети, то выходим
 exit;
 if sys.BatteryLifePercent< 40 then //Если заряд меньше 40 процентов, то выводим сообщение. 
 begin
 Application.MessageBox('Подключите зарядное, чтобы не потерять выполненную работу',PChar('Осталось '+inttostr(sys.BatteryLifePercent)+'% заряда'),MB_OK) ;
 end;
end;


Комментариев нет:

Отправить комментарий