Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Akkukapazität via DeviceIOControl (https://www.delphipraxis.net/52559-akkukapazitaet-via-deviceiocontrol.html)

Dominik 30. Aug 2005 22:31


Akkukapazität via DeviceIOControl
 
Hallo zusammen!

Ich bastle gerade an einem Programm, das die Akkulaufzeit von einem Notebook berechnen kann, da einige Notebooks das leider nicht von sich aus können (scheiß Amilo M...)

Das ganze funktioniert auf Basis von GetSystemPowerStatus schon recht gut, ist mir aber aufgrund der sehr groben Prozent Angaben zu ungenau.

Deshalb möchte ich lieber die verbleibende Kapazität in Wh auslesen. Wie ich auf msdn.com herausgefunden habe ist dies über die Funktion DeviceIOControl möglich. Jedoch bin ich leider beim besten Willen nicht in der Lage mich im MSDN zurecht zu finden und anschließend noch den C-Code in Delphi zu übersetzen.

ich habe außerdem schon hier etwas Delphi Code dazu gefunden, der aber leider bei mir nicht funktioniert.

Kann mir bitte jemand helfen?

Gruß,
Dominik

Olli 31. Aug 2005 08:39

Re: Akkukapazität via DeviceIOControl
 
Wo hakt es denn? Wo hast du auf MSDN was gefunden?

Mehr Input.

Robert Marquardt 31. Aug 2005 08:56

Re: Akkukapazität via DeviceIOControl
 
Hey, ich habe doch gerade auf deine Email geantwortet.
Setz das erst mal um und dann frag nochmal.

> Bei mir schlägt bereits die erste Zeile mit einer „Zugriffsverletzung
> bei Adresse 00000000“ fehl:
>
> DevInfo := SetupDiGetClassDevs(@GUID_DEVICE_BATTERY, nil, 0,
> DIGCF_PRESENT
> or DIGCF_DEVICEINTERFACE);


Hier sitzt der Fehler. Das Setup API wird dynamisch geladen, daher ist SetupDiGetClassDevs eine noch uninitialisierte Variable.
Vor der Verwendung der Funktionen des Setup API muss einmal LoadSetupAPI aufgerufen werden und hinterher UnloadSetupAPI.
Vorzugsweise in FormCreate bzw. FormDestroy.

Das Battery API ist in der Win32 Konversion der Jedi Apilib enthalten (JwaBatClass.pas) http://www.sf.net/projects/jedi-apilib

christian.noeding 31. Aug 2005 10:03

Re: Akkukapazität via DeviceIOControl
 
Morgen! Wollte nur mein Interesse an dem Programm kund tun - habe zwar selber schon ein Akkuprogramm in Delphi programmiert (Akkuwatcher 1.2) allerdings zeigt dieses nicht die verbleibenden Minuten an, sondern "nur" die Prozentanzeige mit ner Progressbar *g* und den dazugehörigen Meldungen. Du kannst ja den Quelltext adaptieren und dann deine Zeitanzeige-Routinen dazubauen :D

Kannst dich ja mal melden, falls die Source interessant für dich ist...



tschö,
Christian


PS: mal ein Bild (Alphablending kann per Mausrad geändert werden, wenn der Mauszeiger auf das Fenster zeigt)
http://home.arcor.de/christian.noedi...kkuwatcher.jpg


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz