Zum vorherigen AbschnittZum nächsten Abschnitt 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.
Ihre Bewertung:
 12345
    

Bewertung dieses Tipps:  (bewertet von insgesamt 6 Besuchern)

 Zum vorherigen AbschnittZum nächsten Abschnitt 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

 Zum vorherigen AbschnittZum nächsten Abschnitt 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

 Zum vorherigen AbschnittZum nächsten Abschnitt 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).

 Zum vorherigen AbschnittZum nächsten Abschnitt Beispielprojekt
Sie können sich hier ein Beispiel als Projektdatei für Vb5 und Vb6 herunterladen.
 Projekt herunterladen



Quellen: SHADOWare.de
Letzte Änderung: 28.12.00
©2000 by SHADOWare, Thomas Bachem