Код
Option Explicit
Private Declare Function GetSystemPowerStatus Lib "kernel32" (lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long
Private Type SYSTEM_POWER_STATUS
ACLineStatus As Byte ' Питание от сети (0 - не используется; 1 - используется; 255 - неизвестно)
BatteryFlag As Byte ' Заряд аккумулятора (1 - высокий; 2 - низкий; 4 - критический; 8 - идет зарядка; 128 - аккумулятор отсутствует; 255 - неизвестно)
BatteryLifePercent As Byte ' Процент заряда аккумулятора (от 0 до 100; 255 - неизвестно)
Reserved1 As Byte
BatteryLifeTime As Long ' Остаточная продолжительность работы от аккумулятора (в секундах; &HFFFFFFFF - неизвестно)
BatteryFullLifeTime As Long ' Продолжительность работы от аккумулятора при полном заряде (в секундах; &HFFFFFFFF - неизвестно)
End Type
Private Sub Form_Load()
Dim SPS As SYSTEM_POWER_STATUS
Call GetSystemPowerStatus(SPS)
Me.AutoRedraw = True
Select Case SPS.ACLineStatus
Case 0
Me.Print "От сети не питаемся"
Case 1
Me.Print "Питаемся от сети"
Case 255
Me.Print "Трудно сказать..."
End Select
Select Case SPS.BatteryFlag
Case 1
Me.Print "Аккумулятор: мой заряд высок"
Case 2
Me.Print "Аккумулятор: мой заряд мал"
Case 4
Me.Print "Аккумулятор: мой заряд очень мал"
Case 8
Me.Print "Аккумулятор: заряжаюсь"
Case 128
Me.Print "Аккумулятор: нет меня"
Case 255
Me.Print "Трудно сказать..."
End Select
End Sub