by Dipen Anovadia (19 Submissions)
Category: Windows System Services
Compatability: Visual Basic 5.0
Difficulty: Unknown Difficulty
Originally Published: Fri 19th May 2006
Date Added: Mon 8th February 2021
Rating: (1 Votes)
GET THE COMPLETE BATTERY STATUS BY USING WINDOWS API JUST ONE PROCEDURE...
API Declarations
'Battery flag (status constants)
Public Const BATTERY_FLAG_CHARGING As Long = &H8
Public Const BATTERY_FLAG_CRITICAL As Long = &H4
Public Const BATTERY_FLAG_HIGH As Long = &H1
Public Const BATTERY_FLAG_LOW As Long = &H2
Public Const BATTERY_FLAG_NO_BATTERY As Long = &H80
Public Const BATTERY_FLAG_UNKNOWN As Long = &HFF&
'System power status structure
Public Type SYSTEM_POWER_STATUS
ACLineStatus As Byte
BatteryFlag As Byte
BatteryLifePercent As Byte
Reserved1 As Byte
BatteryLifeTime As Long
BatteryFullLifeTime As Long
End Type
'windows api
Public Declare Function GetSystemPowerStatus Lib "kernel32.dll" ( _
ByRef lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long
'Email: [email protected]
'Module1 (Procedure)...
'Gets the battery status from flag
Public Function GetBatteryStatus(btFlag As Byte) As String
Dim sRet As String
Dim lFlag As Long
lFlag = CLng(btFlag)
Select Case lFlag
Case BATTERY_FLAG_CHARGING
sRet = "Now Charging..."
Case BATTERY_FLAG_CRITICAL
sRet = "Critically Low !!"
Case BATTERY_FLAG_HIGH
sRet = "High Charged!"
Case BATTERY_FLAG_LOW
sRet = "Low Charged!"
Case BATTERY_FLAG_NO_BATTERY
sRet = "(No Battery)"
Case BATTERY_FLAG_UNKNOWN
sRet = "Unknown"
End Select
GetBatteryStatus = sRet
End Function
'Form1 (with one commandbutton and one listbox)
'Form1 code
'test now
Private Sub Command1_Click()
Dim SPS As SYSTEM_POWER_STATUS
Dim lReturn As Long
lReturn = GetSystemPowerStatus(SPS)
'Clear the list and add the status details
listbox1.Clear
listbox1.AddItem "---" & vbTab & "System Power Status" & vbTab & "---"
listbox1.AddItem ""
listbox1.AddItem "System Power" & vbTab & "=" & vbTab & IIf(SPS.ACLineStatus = 1, "On AC", "On Battery")
listbox1.AddItem "Battery Status" & vbTab & "=" & vbTab & GetBatteryStatus(SPS.BatteryFlag)
listbox1.AddItem "Full Life Time" & vbTab & "=" & vbTab & IIf(SPS.BatteryFullLifeTime = -1, "N/A", SPS.BatteryFullLifeTime)
listbox1.AddItem "Battery Life %" & vbTab & "=" & vbTab & IIf(SPS.BatteryLifePercent = 255, "N/A", SPS.BatteryLifePercent)
listbox1.AddItem "Battery Life Time" & vbTab & "=" & vbTab & IIf(SPS.BatteryLifeTime = -1, "N/A", SPS.BatteryLifeTime)
End Sub
No comments have been posted about GET THE COMPLETE BATTERY STATUS BY USING WINDOWS API JUST ONE PROCEDURE.... Why not be the first to post a comment about GET THE COMPLETE BATTERY STATUS BY USING WINDOWS API JUST ONE PROCEDURE....