Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2012-11-27 21:12:29 ЛС | профиль | цитата
nickware, только через InlineCode. Вот кусок кода:
type
PSystemPowerStatus = ^TSystemPowerStatus;
_SYSTEM_POWER_STATUS = packed record
ACLineStatus : Byte;
BatteryFlag : Byte;
BatteryLifePercent : Byte;
Reserved1 : Byte;
BatteryLifeTime : DWORD;
BatteryFullLifeTime : DWORD;
end;
TSystemPowerStatus = _SYSTEM_POWER_STATUS;
SYSTEM_POWER_STATUS = _SYSTEM_POWER_STATUS;

function GetSystemPowerStatus(var lpSystemPowerStatus: TSystemPowerStatus): BOOL; stdcall; external kernel32 name 'GetSystemPowerStatus';

Расшифровка полей:
ПолеЗначениеРасшифровка
ACLineStatus-Есть ли ток в розетке
_0Тока нет
_1Ток есть
_255"А фиг его знает"
BatteryFlag-Состояние батареи. Битовое поле (т.е. битовое-И одного или нескольких значений)
_0Заряжена менее чем на 66%, но более чем на 33%
_1Заряжена более чем на 66%
_2Заряжена менее чем на 33%
_4Заряжена менее чем на 5%
_8Заряжается
_128Нет системной батареи
_255"А фиг его знает"
BatteryLifePercent-Процент заряда батареи
_0-100Заряд батареи
_255"А фиг его знает"
Reserved1-Не используется - всегда ноль
BatteryLifeTime-Оставшееся время работы от батареи, секунд
BatteryFullLifeTime-Сколько (в теории) можно проработать от батареи, секунд

карма: 1

3
Голосовали:Tad, Ex_, Konst