

Informationen zur Energieversorgung des PCs |
Wenn Sie wissen müssen, wieviel Energie dem Computer zur Verfügung steht und ob er sich im Akkubetrieb
befindet oder an das Festnetz angeschlossen ist, müssen Sie sich mal wieder einer API-Funktion bedienen.
Interessant ist diese Information zum Beispiel, wenn Sie sich ihr eigenes "Notstrom-Programm" für den
Laptop programmieren. Dieses kann dann beispielsweise bei enorm niedrigem Ladezustand des Akkus alle
wichtigen Daten speichern und den Computer herunterfahren.
| |
| Bewertung dieses Tipps: |      | (bewertet von insgesamt 6 Besuchern) |

Deklarationen |
Wir benötigen für unser Vorhaben eine API-Funktion sowie eine Typdeklaration.
Ich empfehle Ihnen, die folgenden Deklarationen in einem Modul
vorzunehmen, da die Funktion dann später im gesamten Projekt zur Verfügung steht. Andernfalls, wenn Sie
lieber eine Form zum Deklarieren verwenden möchten, müssen Sie jedes Vorkommen von "Public" in
"Private" ändern:
Private Declare Function GetSystemPowerStatus Lib "kernel32" (lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long
Private Type SYSTEM_POWER_STATUS
ACLineStatus As Byte 'Energiequelle = Festnetz?
BatteryFlag As Byte 'Batteriestatus
BatteryLifePercent As Byte 'Batteriezustand
Reserved1 As Byte 'Nicht genutzt
BatteryLifeTime As Long 'Noch verfügbare Lebenszeit der Batterie
BatteryFullLifeTime As Long 'Total verfügbare Lebenszeit der Batterie
End Type

Der Aufruf |
Deklarieren Sie nun eine Variable des Typs "SYSTEM_POWER_STATUS"
und übergeben Sie diese der API-Funktion:
Dim SysPower As SYSTEM_POWER_STATUS
GetSystemPowerStatus SysPower 'Informationen abrufen

Die Rückgabewerte |
Im folgenden werde ich Ihnen nun erklären, wie Sie die Rückgabewerte der API-Funktion zu deuten haben.
.BatteryLifePercent enthält die Angabe der verbleibenden
Energie des Akkus in Prozent. Der Rückgabewert ist kann also die Zahlen 1-100 annehmen.
.BatteryLifeTime gibt die verbleibende Lebensdauer des Akkus an,
falls diese vom Hersteller angegeben wurde.
.BatteryFullLifeTime gibt die gesamte Lebensdauer des Akkus an,
falls der Hersteller darüber eine Angabe gemacht hat.
.ACLineStatus enthält Informationen über die derzeit genutzte
Energiequelle (0 = Akku, 1 = Steckdose, 2 = unbekannt, sonst nicht
verfügbar).
.BatteryFlag gibt über den eventuellen Status des Akkus
Auskunft (1 = hoch, 2 = niedrig, 4 = kritisch, 128 = keine Batterie,
255 = unbekannt, sonst nicht verfügbar).

Beispielprojekt |
Sie können sich hier ein Beispiel als Projektdatei für Vb5 und Vb6 herunterladen.
Quellen: SHADOWare.de Letzte Änderung: 28.12.00 |
©2000 by SHADOWare, Thomas Bachem |