Листинг 7.5.
Определение состояния системы питания
procedure TForm1.LoadPowerStatus();
var
batFlags: String;
status: TSystemPowerStatus;
prof_info: THWProfileInfo;
begin
lvwPowerStatus.Clear;
//Получаем информацию о состоянии питания
ZeroMemory(Addr(status), SizeOf(status));
GetSystemPowerStatus(status);
//Заполняем список информацией о состоянии питания
//..подключение к сети
case status.ACLineStatus of
0: AddParam(\'Подключение к сети\', \'Отключен\');
1: AddParam(\'Подключение к сети\', \'Подключен\');
else AddParam(\'Подключение к сети\', \'Неизвестно\');
end;
//..заряд батареи (битовая маска)
if status.BatteryFlag and 1 <> 0 then batFlags := \'Высокий \
if status.BatteryFlag and 2 <> 0 then batFlags := batFlags +
\'Низкий \
if status.BatteryFlag and 4 <> 0 then
batFlags := batFlags + \'Критический \
if status.BatteryFlag and 8 <> 0 then
batFlags := batFlags + \'(Идет зарядка)\
if status.BatteryFlag and 128 <> 0 then
batFlags := batFlags + \'Батарея не установлена\
if status.BatteryFlag = 255 then batFlags := batFlags + \'Не-
известно\
AddParam(\'Заряд батареи\', batFlags);
//..численные характеристики батареи
if status.BatteryLifePercent <> 255 then
AddParam(\'Остаток заряда батареи\',
IntToStr(Integer(status.BatteryLifePercent)))
else
AddParam(\'Остаток заряда батареи\', \'Неизвестно\');
if status.BatteryLifeTime <> Cardinal(–1) then
AddParam(\'Время работы батареи (остаток, сек.)\',
IntToStr(Integer(status.BatteryLifeTime)))
else
AddParam(\'Время работы батареи (остаток, сек.)\', \'Неизвестно\');
if status.BatteryFullLifeTime <> Cardinal(–1) then
AddParam(\'Полное время работы батареи, сек.\',
IntToStr(Integer(status.BatteryFullLifeTime)))
else
AddParam(\'Полное время работы батареи, сек.\', \'Неизвестно\');
end;
В листинге 7.5 для отображения каждого параметра системы питания вызывается процедура AddParam, добавляющая в элемент управления формы название параметра и его значение. Этим элементом управления может быть, например, ListView. Для такого случая возможный результат работы процедуры LoadPowerStatus показан на рис. 7.2.
Рис. 7.2. Собранная информация о системе питания