;Battery UDF ; by minx - the (c) is strong with this one :-) Func _Batt_GetState() $colItems = "" $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2") $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Battery", "WQL", 0x10 + 0x20) If IsObj($colItems) Then For $objItem In $colItems $State = $objItem.BatteryStatus Next If $State < 0 Or $State > 7 Then SetError(1) Return -1 Else If $State = 1 Then Return "DISCHARGING" ElseIf $State = 2 Then Return "CHARGING" EndIf EndIf EndIf EndFunc Func _Batt_GetCaption() $colItems = "" $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2") $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Battery", "WQL", 0x10 + 0x20) If IsObj($colItems) Then For $objItem In $colItems $Stat = $objItem.DeviceID Return $Stat Next EndIf EndFunc Func _Batt_GetCharge() $colItems = "" $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2") $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Battery", "WQL", 0x10 + 0x20) If IsObj($colItems) Then For $objItem In $colItems $Stat = $objItem.EstimatedChargeRemaining Return $Stat Next EndIf EndFunc Func _Batt_GetVoltage() $colItems = "" $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2") $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Battery", "WQL", 0x10 + 0x20) If IsObj($colItems) Then For $objItem In $colItems $Stat = $objItem.DesignVoltage Return $Stat/1000 Next EndIf EndFunc