AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Akkumanagement (Notifications)

Ein Thema von himitsu · begonnen am 5. Feb 2024 · letzter Beitrag vom 13. Feb 2024
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#8

AW: Akkumanagement (Notifications)

  Alt 6. Feb 2024, 15:46
Mal wieder mein "Lieblingchatbot"
Zitat von Frage:
Gibt es unter Windows eine Message oder einen Broadcast, der meldet, wenn sich der Ladezustand des Akkus verändert?
Zitat von Antwort:
Ja, Windows kann Änderungen des Akkuzustands erkennen und darauf reagieren. Die spezifischen Mechanismen hängen von der Hardwaretopologie des Systems ab¹.

In Systemen, die einen eingebetteten Controller verwenden, führt Windows Abfragen durch und wird über die eingebettete ACPI-Controllerschnittstelle über das Energiesubsystem informiert¹. In Systemen, die einen Akkuladecontroller und eine Ladestandkomponente verwenden, die über einen einfachen Peripheriebus wie I²C direkt mit dem Kernprozessor der Plattform verbunden sind, führt Windows über den I²C-Bus Abfragen durch und wird darüber über Änderungen des Energiesubsystems informiert¹.

Darüber hinaus zeigt Windows 10 eine Benachrichtigung an, wenn der Akkustand niedrig oder kritisch ist². Diese Benachrichtigungen können in den Energieoptionen angepasst werden².

Bitte beachten Sie, dass die genauen Mechanismen und APIs, die verwendet werden, um auf Änderungen des Akkuzustands zu reagieren, von der spezifischen Windows-Version und der Hardwarekonfiguration abhängen können. Für detailliertere Informationen empfehle ich, die offizielle Dokumentation von Microsoft zu konsultieren¹.

Quelle: Unterhaltung mit Bing, 5.2.2024
(1) Hardwaredesign für Akku- und Energiesubsystem | Microsoft Learn. https://learn.microsoft.com/de-de/wi...ardware-design.
(2) Windows 10 Benachrichtigungen über schwachen Akkustand ändern - Gelöst. https://www.spickipedia.com/index.ph...n-geloest.html.
(3) Pflege des Akkus in Windows - Microsoft-Support. https://support.microsoft.com/de-de/...6-ed15320519e4.
Zitat von Frage:
Wie kann ich unter Delphi darauf reagieren, mir z. B. den aktuellen Akkuzustand anzeigen lassen?
Zitat von Antwort:
Ja, Sie können den aktuellen Akkuzustand in Delphi anzeigen lassen. Sie können die Windows-API-Funktion 'GetSystemPowerStatus' verwenden, um Informationen über den aktuellen Power-Status des Systems zu erhalten¹. Hier ist ein Beispiel, wie Sie es tun können:
Delphi-Quellcode:
procedure GetStatus;
var
  SystemPowerStatus: TSystemPowerStatus;
begin
  GetSystemPowerStatus(SystemPowerStatus);
  with SystemPowerStatus do begin
    // Wird das System mit Wechselstrom oder Akku betrieben ?
    case ACLineStatus of
      0: Label1.Caption := 'System wird mit Akku betrieben';
      1: Label1.Caption := 'System wird mit Wechselstrom betrieben';
      else Label1.Caption := 'Unbekannter Status';
    end;

    // Ladezustand der Batterie
    case BatteryFlag of
      1 : Label2.Caption := 'Hoher Ladezustand';
      2 : Label2.Caption := 'Niedriger Ladezustand';
      4 : Label2.Caption := 'Kritischer Ladezustand';
      8 : Label2.Caption := 'Die Batterie wird geladen';
      128: Label2.Caption := 'Es existiert keine System-Batterie';
      255: Label2.Caption := 'Unbekannter Status';
    end;

    // Ladezustand in Prozent
    if BatteryLifePercent <> 255 then
      Label3.Caption := IntToStr(BatteryLifePercent) + ' %'
    else
      Label3.Caption := 'Unbekannter Status';
  end;
end;
Zitat von Antwort (Fortsetzung):
In diesem Code wird der 'GetSystemPowerStatus'-Funktion ein 'TSystemPowerStatus'-Strukturparameter übergeben. Die Funktion füllt diese Struktur mit Informationen über den AC-Leitungszustand, den Batteriezustand und den Batterielebensprozentsatz¹. Bitte beachten Sie, dass Sie die 'Label1', 'Label2' und 'Label3' durch Ihre eigenen Label-Komponenten ersetzen müssen¹.

Quelle: Unterhaltung mit Bing, 5.2.2024
(1) Power-Status des Computers ermitteln - Delphi-Treff. https://www.delphi-treff.de/tipps-tr...ers-ermitteln/.
(2) Delphi-PRAXiS - Suche Unterstützung für Akku Status Anzeige. https://www.delphipraxis.net/printthread.php?t=214506.
(3) Suche Unterstützung für Akku Status Anzeige - Delphi-PRAXiS. https://www.delphipraxis.net/214506-...s-anzeige.html.
Zitat von Frage:
Für die einzelnen Windowsmessages sind in der API Konstanten deklariert. Gewöhnlich sind es nummerische Werte, für die es Konstanten gibt, deren Namen meist mit "WM_" beginnen. Gibt es etwas ähnliches auch für die Message, mit der über den Ladezustand informiert wird? Wie heißt diese Konstante oder wie ist ihr nummerischer Wert?
Zitat von Antwort:
Ja, es gibt eine Windows-Message, die über Änderungen im System-Stromstatus informiert. Sie heißt 'WM_POWERBROADCAST'. Diese Message wird an eine Anwendung gesendet, wenn sich der Stromzustand des Systems ändert, z. B. wenn sich der Akkuzustand ändert¹.

Die 'WM_POWERBROADCAST'-Message hat mehrere Parameter, die verschiedene Arten von Stromereignissen darstellen. Insbesondere repräsentiert der 'PBT_APMPOWERSTATUSCHANGE'-Parameter eine Änderung im Akkustatus¹.

Hier ist ein Beispiel, wie Sie auf diese Message in Delphi reagieren können:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    procedure WMPowerBroadcast(var Msg: TMessage); message WM_POWERBROADCAST;
  end;

...

procedure TForm1.WMPowerBroadcast(var Msg: TMessage);
begin
  if Msg.WParam = PBT_APMPOWERSTATUSCHANGE then
  begin
    // Der Akkustatus hat sich geändert
    // Führen Sie hier den Code aus, der auf diese Änderung reagieren soll
  end;
end;
Zitat von Antwort (Fortsetzung):
In diesem Code wird die 'WMPowerBroadcast'-Methode aufgerufen.

Quelle: Unterhaltung mit Bing, 5.2.2024
(1) Firmware-Implementierung für das ACPI-Akku- und Energiesubsystems. https://learn.microsoft.com/de-de/wi...implementation.
Kannste damit was anfangen?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz