Dienstag, 15. Juni 2010

Akkuladezustand, verbleibende Akkulaufzeit etc. auslesen

Ab .Net Framework Version 2.0 ist in diesem eine neue, sehr interessante Klasse vorhanden.
Was früher nur umständlich über API - Aufrufe ging, geht jetzt leicht mit .Net Bordmitteln.
Die Rede ist von der Klasse PowerStatus, welche Informationen über den im Laptop befindlichen Akku auslesen kann.
Das folgende Beispiel demonstriert die Möglichkeiten dieser Klasse, zum Beispiel können so die Lebenszeit des Akkus oder die Restkapazität des Akkus in Sekunden oder Prozent wirklich kinderleicht ausgelesen werden:


            /* BatteryChargeStatus beschreibt den aktuellen Akkuzustand, als Ergebnis wird eine
            Aufzählung zurückgegeben, die, als Strings betrachtet, folgende Werte beinhaltet:
            - High
            - Low
            - Critical
            - Charging
            - No SystemBattery
            - Unknown */

            string ChargeStatus = SystemInformation.PowerStatus.BatteryChargeStatus.ToString();

            // BatteryFullLifetime speichert die gemeldete Maximallebensdauer des Akkus, d.h. wie lange der Akku laut Hersteller halten kann
            float FullLifeTime = SystemInformation.PowerStatus.BatteryFullLifetime;
    
            // liest die ungefähre Restkapazität des Akkus in Prozent aus
            float RemainingPercent = SystemInformation.PowerStatus.BatteryLifePercent;

            // liest die ungefähre Restkapazität des Akkus in Sekunden aus
            float RemainingSeconds = SystemInformation.PowerStatus.BatteryLifeRemaining;

            // Gibt an, ob der Laptop an den Strom angeschlossen ist (Online) oder über Akku läuft (Offline).
            string OnBattery = System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus.ToString();

Kommentare:

  1. Cool, ich wusste gar nicht, dass das mit .NET möglich ist. Danke für den Tipp!

    AntwortenLöschen
  2. Ich programmiere gerade ein Server-Panel und so etwas habe ich echt gebraucht!

    AntwortenLöschen
  3. Kann man mit dieser Klasse auch herausfinden ob das Notebook über das Netzteil oder den Akku läuft?

    AntwortenLöschen
    Antworten
    1. Ja, das geht mit string OnBattery = System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus.ToString();. (Habe die Beschreibung mal ergänzt, danke.)

      Löschen
  4. Kann man auch das Akku symbol mit anzeigen lassen?

    AntwortenLöschen
    Antworten
    1. Nein, beziehungsweise ich denke nicht so wie du es dir vorstellst. Das Akku Symbol existiert ja eigentlich nirgendwo sondern wird nur vom Betriebssystem erzeugt und dargestellt. Aber du könntest dir natürlich selber eins erstellen.

      Löschen