the level power battery
Code: Select all
#NUM_DISCHARGE_POLICIES = 4
;
Structure POWER_ACTION_POLICY
action.l
flags.l
EventCode.l
EndStructure
Structure SYSTEM_POWER_LEVEL
Enable.b
Spare.b[3]
BatteryLevel.l
powerpolicy.POWER_ACTION_POLICY
MinSystemState.l
EndStructure
Structure GLOBAL_MACHINE_POWER_POLICY
Revision.l
LidOpenWakeAc.l
LidOpenWakeDc.l
BroadcastCapacityResolution.l
EndStructure
Structure GLOBAL_USER_POWER_POLICY
Revision.l
PowerButtonAc.POWER_ACTION_POLICY
PowerButtonDc.POWER_ACTION_POLICY
SleepButtonAc.POWER_ACTION_POLICY
SleepButtonDc.POWER_ACTION_POLICY
LidCloseAc.POWER_ACTION_POLICY
LidCloseDc.POWER_ACTION_POLICY
DischargePolicy.SYSTEM_POWER_LEVEL[#NUM_DISCHARGE_POLICIES]
GlobalFlags.l
EndStructure
Structure GLOBAL_POWER_POLICY
user.GLOBAL_USER_POWER_POLICY
mach.GLOBAL_MACHINE_POWER_POLICY
EndStructure
Structure MACHINE_POWER_POLICY
Revision.l
MinSleepAc.l
MinSleepDc.l
ReducedLatencySleepAc.l
ReducedLatencySleepDc.l
DozeTimeoutAc.l
DozeTimeoutDc.l
DozeS4TimeoutAc.l
DozeS4TimeoutDc.l
MinThrottleAc.b
MinThrottleDc.b
pad1.b[2]
OverThrottledAc.POWER_ACTION_POLICY
OverThrottledDc.POWER_ACTION_POLICY
EndStructure
;
Structure USER_POWER_POLICY
Revision.l
IdleAc.POWER_ACTION_POLICY
IdleDc.POWER_ACTION_POLICY
IdleTimeoutAc.l
IdleTimeoutDc.l
IdleSensitivityAc.b
IdleSensitivityDc.b
ThrottlePolicyAc.b
ThrottlePolicyDc.b
MaxSleepAc.l
MaxSleepDc.l
reserved.l[2]
VideoTimeoutAc.l
VideoTimeoutDc.l
SpindownTimeoutAc.l
SpindownTimeoutDc.l
OptimizeForPowerAc.b
OptimizeForPowerDc.b
FanThrottleToleranceAc.b
FanThrottleToleranceDc.b
ForcedThrottleAc.b
ForcedThrottleDc.b
EndStructure
Structure POWER_POLICY
user.USER_POWER_POLICY
mach.MACHINE_POWER_POLICY
EndStructure
*PP.POWER_POLICY
Procedure Refresh(timeout)
Repeat
powerpolicyglobal.GLOBAL_POWER_POLICY
powerpolicy.POWER_POLICY
syspowerstat.SYSTEM_POWER_STATUS
If GetSystemPowerStatus_(syspowerstat)
Select syspowerstat\ACLineStatus
Case 0
SetGadgetText(0,"You are currently on Battery Power")
Case 1
SetGadgetText(0,"You are currently on AC Power")
EndSelect
SetGadgetText(1,Str(syspowerstat\BatteryLifePercent)+"%")
Select syspowerstat\BatteryFlag
Case 1
SetGadgetColor(1,#PB_Gadget_FrontColor,RGB(0,0,0))
Case 2
SetGadgetColor(1,#PB_Gadget_FrontColor,RGB(0,255,0))
Case 4
SetGadgetColor(1,#PB_Gadget_FrontColor,RGB(0,0,255))
EndSelect
EndIf
Delay(1000)
ForEver
EndProcedure
If OpenWindow(0,0,0,300,80,"Power Meter",#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
hwnd = WindowID(0)
hdc = GetDC_(hwnd)
If Not CreateGadgetList(hwnd)
End
EndIf
TextGadget(0,20,20,270,20,"",#PB_Text_Center)
TextGadget(1,20,40,270,20,"",#PB_Text_Center)
CreateThread(@Refresh(),timeout)
Repeat
Event = WindowEvent()
Select Event
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf