GET THE COMPLETE BATTERY STATUS BY USING WINDOWS API JUST ONE PROCEDURE...
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
Rate GET THE COMPLETE BATTERY STATUS BY USING WINDOWS API JUST ONE PROCEDURE...
(2(2 Vote))
'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
GET THE COMPLETE BATTERY STATUS BY USING WINDOWS API JUST ONE PROCEDURE... Comments
No comments yet — be the first to post one!
Post a Comment