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


Оставить комментарий

Я не робот.