VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



GET THE COMPLETE BATTERY STATUS BY USING WINDOWS API JUST ONE PROCEDURE...

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


Rate GET THE COMPLETE BATTERY STATUS BY USING WINDOWS API JUST ONE PROCEDURE...



'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

Download this snippet    Add to My Saved Code

GET THE COMPLETE BATTERY STATUS BY USING WINDOWS API JUST ONE PROCEDURE... Comments

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....

Post your comment

Subject:
Message:
0/1000 characters