![]() |
Komponente zum abrufen des Batteriestatus
Moin,
wollt mal fragen, ob es außer Zylbattery noch (kostenlose) Komponenten gibt, mit denen man den Akkustatus abfragen kann (ja, AbfComponents Library hat noch sowas, ist aber leider nicht kostenlos). Habe mir gerade XE5 Pro bestellt, weshalb mir das Geld zur Zeit (offensichtlicher weise) nicht so locker sitzt, als dass ich noch großartige Ausgaben deshalb tätigen will. Vielleicht hat ja einer ovn euch ne Idee, oder kennt noch eine (kostenlose) Komponentensammlung, die das kann. MFG Dennis |
AW: Komponente zum abrufen des Batteriestatus
Eine Komponente ist dafür etwas übertrieben, es steckt schließlich im Wesentlichen nur ein API Aufruf von GetSystemPowerStatus dahinter:
![]() |
AW: Komponente zum abrufen des Batteriestatus
Siehe auch
![]() |
AW: Komponente zum abrufen des Batteriestatus
Scheint nicht (richtig) zu funktionieren (bei mir zumindest).
Dort zeigt er nämlich immer nur "N/A" und "Healthy" an, obwohl ich ein Notebook habe und den Stecker draussen bzw. drinnen.... (PS: zZ arbeite ich noch unter Turbo-Delphi 06) MFG |
AW: Komponente zum abrufen des Batteriestatus
Zitat:
Zitat:
Wie man da Zitat:
Vielleicht verrät die Funktion ja, ob/warum sie "kein" Ergebnis liefert. |
AW: Komponente zum abrufen des Batteriestatus
Zitat:
Zitat:
|
AW: Komponente zum abrufen des Batteriestatus
Ich habe mal eine kleine Unit dafür geschrieben. Fast nicht getestet, die Lebensdauer stimmt wohl noch nicht, ich habe gerade keine Zeit nachzuschauen. Das mache ich heute Abend, dann kommt noch ein Update.
// EDIT: aktuelle Version siehe weiter unten: ![]() Zum Testen einfach:
Delphi-Quellcode:
Bei Delphi 2006 sollte das glaube ich alles schon so gehen.
uses
PowerStatusInfo; ShowMessage(TPowerStatusInfo.StatusDescription); |
AW: Komponente zum abrufen des Batteriestatus
Achtung, dezent OT:
Ich habe mir gerade die Doku auf MSN durchgelesen und bin nun verunsichert. Seeehr verunsichert. ;-) Zitat:
Wie schafft die Funktion es dann, diesen beiden Feldern den Wert -1 zuzuweisen? :gruebel: :mrgreen: Ist mir nur so aufgefallen. |
AW: Komponente zum abrufen des Batteriestatus
Liste der Anhänge anzeigen (Anzahl: 1)
Da wird DWORD(-1), also $FFFFFFFF, zurückgegeben, der Wert ist nur nicht so einfach zu schreiben. :-D
Hier die fertig funktionierende Version: Anhang 40448 |
AW: Komponente zum abrufen des Batteriestatus
[QUOTE=Furtbichler;1241426]
Zitat:
@Sebastian: Keine Ahrnung, wovon ihr redet, aber das kommt wohl noch (man lernt nie aus^^). Hab dir ja schon geschrieben, dass DXE5 jetzt drauf ist.... |
AW: Komponente zum abrufen des Batteriestatus
Zitat:
|
AW: Komponente zum abrufen des Batteriestatus
Das erste Turbo Delphi ist eine Edition/Variante von Delphi 2006.
|
AW: Komponente zum abrufen des Batteriestatus
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Testen sollte man... Mein Notebook läuft OHNE Netzteil und OHNE Akku. |
AW: Komponente zum abrufen des Batteriestatus
Ich habe leider nicht allzu viele Geräte zum Testen zur Verfügung.
Kannst du vielleicht mal einen Screenshot vom Inhalt von FSystemPowerStatus machen bitte? |
AW: Komponente zum abrufen des Batteriestatus
Liste der Anhänge anzeigen (Anzahl: 1)
Netzteil angeschlossen, Akku wird geladen.
Siehe Anhang: |
AW: Komponente zum abrufen des Batteriestatus
Jup...bei mir das gleiche +
Fehler "Ungültiges Argument beim codieren der Uhrzeit" oder sowas.... Fehler gefunden:
Code:
LifeTimeSeconds ist bei mir -1 und das scheint wohl doch nicht $FFFFFFFF zu sein
var
LifeTimeSeconds: [COLOR="Red"]Integer;[/COLOR] begin if Refresh then begin LifeTimeSeconds := FSystemPowerStatus.BatteryFullLifeTime; if LifeTimeSeconds = $FFFFFFFF then System Win10 Prof Comp 10.2 Tokyo Starter :) |
AW: Komponente zum abrufen des Batteriestatus
Liste der Anhänge anzeigen (Anzahl: 1)
|
AW: Komponente zum abrufen des Batteriestatus
Liste der Anhänge anzeigen (Anzahl: 1)
Immer noch fehlerhaft. Akku ist voll geladen und hat 100%.
Nachtrag: Du hast falsche Werte "eingeschmuggelt":
Delphi-Quellcode:
class function TPowerStatusInfo.Refresh: Boolean;
begin if FUpdateCounter <= 0 then FSuccess := GetSystemPowerStatus(FSystemPowerStatus); FSystemPowerStatus.ACLineStatus := 1; FSystemPowerStatus.BatteryFlag := 9; FSystemPowerStatus.BatteryFullLifeTime := 4294967295; FSystemPowerStatus.BatteryLifePercent := 79; FSystemPowerStatus.BatteryLifeTime := 4294967295; Result := FSuccess; end; |
AW: Komponente zum abrufen des Batteriestatus
Argh, danke, ich habe den Anhang korrigiert... :?
|
AW: Komponente zum abrufen des Batteriestatus
Kleine zusätzliche Info:
Die Anzeige "Kein Akku vorhanden" ist sogar korrekt und bezieht sich auf den 1. Akku. 2. Akku wird (zumindest von der Standard-Windows Anzeige) als vorhanden gemeldet mit XX %. Scheint so, als ob die Auflistung der Flags in der MSDN wohl ein wenig.....wenig ist :) |
AW: Komponente zum abrufen des Batteriestatus
Ich habe die Rückgabe mal mit dem Output von smBIOS verglichen:
![]() Kommt bei mir beide Male das selbe raus. Unschön ist nur die Umwandlung des Datums 0 in 31.12.1899. Ich denke, man kann sagen, es ist kein Wert vorhanden, wenn 0 im Record zurückgegeben wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 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