18
Сентябрь
2009
Получить информацию о состоянии питания компьютера
Получить информацию о состоянии питания компьютера
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