This demo is useful for notebook computers that run on batteries.
struct SYSTEMPOWERSTATUS,_
ACLineStatusBatteryFlag as word,_
BatteryLifePercent as word,_
BatteryLifeTime as ulong,_
BatteryFullLifeTime as ulong
'ACLineStatus
' 0=offline
' 1=online
' 255=unknown
'BatteryFlag
' 1 High
' 2 Low
' 4 Critical
' 8 Charging
' 128 No system battery
' 255 Unknown status
'BatteryLifePercent
'0-100% or 255 if status unknown
'BatteryLifeTime
' Number of seconds of battery life remaining,
' or hexdec("FFFFFFFF") if remaining seconds are unknown.
'BatteryFullLifeTime
' Number of seconds of battery life when at full charge,
' or hexdec("FFFFFFFF") if full battery lifetime is unknown.
calldll #kernel32, "GetSystemPowerStatus",_
SYSTEMPOWERSTATUS as struct, re as boolean
ACBF = SYSTEMPOWERSTATUS.ACLineStatusBatteryFlag.struct
print "ACLineStatus is "; ACBF MOD 256
print "BatteryFlag is ";int(ACBF/256)
print "BatteryLifePercent is "; SYSTEMPOWERSTATUS.BatteryLifePercent.struct
print "BatteryLifeTime in seconds is ";SYSTEMPOWERSTATUS.BatteryLifeTime.struct
print "BatteryFullLifeTime in seconds is ";SYSTEMPOWERSTATUS.BatteryFullLifeTime.struct