Функция GetSystemPowerStatus

Declare Function GetSystemPowerStatus Lib "kernel32" ( _
    lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long

GetSystemPowerStatus получает информацию о состоянии питания компьютера, что особенно полезно при использовании ноутбуков для получения данных об источнике питания и заряде батарей.

Возвращаемое значение

В успешном случае возвращается ненулевое значение, или 0 в случае ошибки.

Параметры

lpSystemPowerStatus
Структура SYSTEM_POWER_STATUS, в которой содержатся необходимые данные

Пример

' Добавим на форму несколько меток Label
    Dim power_status As SYSTEM_POWER_STATUS
    Dim txt As String

    If GetSystemPowerStatus(power_status) = 0 Then
        lblACStatus.Caption = "Ошибка"
    Else
        Select Case power_status.ACLineStatus
            Case 0
                lblACStatus.Caption = "Питание от батарей"
            Case 1
                lblACStatus.Caption = "Питание от сети"
            Case 255
                lblACStatus.Caption = "Неизвестный тип питания"
        End Select

        If power_status.BatteryFlag And 1 Then txt = txt & ", High (> 66%)"
        
        If power_status.BatteryFlag And 2 Then txt = txt & ", Low (< 33%)"
        If power_status.BatteryFlag And 4 Then txt = txt & ", Critical (< 5%)"
        If power_status.BatteryFlag And 8 Then txt = txt & ", Charging"
        If power_status.BatteryFlag And 128 Then txt = txt & ", No system battery"
        If power_status.BatteryFlag = 255 Then txt = txt & ", Unknown"
        If Len(txt) > 0 Then txt = Mid$(txt, 3)
        lblBatteryStatus.Caption = txt

        If power_status.BatteryFullLifeTime = -1 Then
            lblFullLifetime.Caption = "Неизвестно"
        Else
            lblFullLifetime.Caption = power_status.BatteryFullLifeTime & " seconds"
        End If

        If power_status.BatteryLifeTime = -1 Then
            lblRemainingLifetime.Caption = "Неизвестно"
        Else
            lblRemainingLifetime.Caption = power_status.BatteryLifeTime & " seconds"
        End If

        If power_status.BatteryLifePercent = 255 Then
            lblPercentLifetime.Caption = "Неизвестно"
        Else
            lblPercentLifetime.Caption = power_status.BatteryLifePercent & "%"
        End If
    End If

Категория

Управление питанием

Реклама