Home | Kontakt | Sitemap

Start

Über mich

Kontakt

Sitemap

Lizenz

Anleitungen

DVD, miniDVD

SVCD

Audio, Audio-CD (CD-DA)

AVI

Software

Von Freunden und Bekannten

Eigene Programme

Programmierung

Delphi

Lazarus

Delphi/Lazarus

Projekte

MPEG-1/2 Video

Optische Laufwerke

Audio-CD (CDDA)

Raspberry Pi Dashcam

Verschiedenes

MPEG 2 Schnitt

Project X

VCD Easy

Hardlinks

Windows

Links

Software

Programmierung Delphi - Batterie - GetSystemPowerStatus

Die Systemfunktion GetSystemPowerStatus

Beschreibung

Dies ist eine Systemfunktion, setzt mindestens ein Windows XP als Desktop-Version voraus und liefert Informationen zur Stromversorgung sowie zum Ladezustand der Batterie.

Funktion GetSystemPowerStatus

Die Funktion ist im MSDN Windows Dev Center so definert:

BOOL WINAPI GetSystemPowerStatus(
  _Out_ LPSYSTEM_POWER_STATUS lpSystemPowerStatus
);

lpSystemPowerStatus: Ein Zeiger auf den Speicher mit einer Datenstuktur SYSTEM_POWER_STATUS, welche die Informationen enthält.

Wurde die Operation fehlerfrei durchgeführt ist der Rückgabewert True. Wurde sie nicht fehlerfrei ausgeführt, kann der Fehler mit der Funktion GetLastError ermittelt werden.

Die Funktion ist in Delphi in der Unit Windows deklariert. Hier Delphi 7:

function GetSystemPowerStatus(var lpSystemPowerStatus: TSystemPowerStatus): BOOL; stdcall;

Struktur SYSTEM_POWER_STATUS

Die Struktur enthält die Informationen und ist als c++ im MSDN Windows Dev Center definiert:

typedef struct _SYSTEM_POWER_STATUS {
  BYTE  ACLineStatus;
  BYTE  BatteryFlag;
  BYTE  BatteryLifePercent;
  BYTE  SystemStatusFlag;
  DWORD BatteryLifeTime;
  DWORD BatteryFullLifeTime;
} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;

ACLineStatus: Gibt an, ob das Gerät am Wechselstromnetz angeschlossen ist.

Wert Beschreibung
0 Offline - Nicht angeschlossen.
1 Online - Angeschlossen.
255 Unbekannt.

BatteryFlag: Gibt den Ladezustand der Batterie an.

Flag Beschreibung
1 Hoch - Die Batteriekapazität liegt über 66%.
2 Niedrig - Die Batteriekapazität liegt unter 33%.
4 Kritisch - Die Batteriekapazität liegt unter 5%.
8 Wird geladen.
128 Keine Systembatterie.
255 Unbekannt - Es ist nicht möglich Informationen zu lesen.

Der Wert ist 0, wenn die Batterie nicht geladen wird und die Kapazität zwischen hoch und niedrig liegt

BatteryLifePercent: Gibt in einem Bereich von 0 bis 100% den Ladezustand der Batterie an. Der Wert 255 gibt an, dass der Ladezustand unbekannt ist.

SystemStatusFlag: Gibt den Status des Batteriesparmodus an.

Wert Beschreibung
0 Der Batteriesparmodus ist aus.
1 Der Batteriesparmodus ist an. Das Energiseparen ist möglich.

BatteryLifeTime: Die verbleibende Batterielaufzeit in Sekunden. Ist die verbleibende Laufzeit unbekannt oder das Gerät am Netz angeschlossen ist der Wert -1.

BatteryFullLifeTime: Die Batterielaufzeit in Sekunden bei voller Ladung. Ist die Laufzeit unbekannt oder das Gerät am Netz angeschlossen ist der Wert -1.

Die Struktur ist in der Unit Windows.pas deklariert. Hier in Delphi 7:

type
  PSystemPowerStatus = ^TSystemPowerStatus;
  _SYSTEM_POWER_STATUS = packed record
    ACLineStatus : Byte;
    BatteryFlag : Byte;
    BatteryLifePercent : Byte;
    Reserved1 : Byte;
    BatteryLifeTime : DWORD;
    BatteryFullLifeTime : DWORD;
  end;
  {$EXTERNALSYM _SYSTEM_POWER_STATUS}
  TSystemPowerStatus = _SYSTEM_POWER_STATUS;
  SYSTEM_POWER_STATUS = _SYSTEM_POWER_STATUS;
  {$EXTERNALSYM SYSTEM_POWER_STATUS}

Funktion in Delphi 7

uses
  ... Windows;
 
var
  ...
  rSystemPowerStatus : TSystemPowerStatus;
 
begin
  ...
  if GetSystemPowerStatus
  then begin
    // Auswertung
  end
  else begin
    ShowMessage(IntToStr(GetLastError));
  end;
end;

Download

Demo mit Delphi 7 compiliert
battery_power_exe.7z (151 kB) - MD5 (1kB)

Source der Demo
battery_power_src.7z (3 kB) - MD5 (1kB)

Eigenschaften setzen > GetSystemPowerStatus > Links