Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Akkukapazität auslesen (https://www.delphipraxis.net/147851-akkukapazitaet-auslesen.html)

Bent1995 17. Feb 2010 17:43


Akkukapazität auslesen
 
Hallo,

Ich programmiere zurzeit ein Tool, welches einige Informationen über den Akku (eines Notebooks) und das System ausgibt. Jedoch möchte ich nun auch die gesamte kapazität des Akkus auslesen, um die Akkulaufzeit auszurechnen. Jedoch weiß ich nicht wie ich das bewerkstelligen soll. Hab schon in einigen Foren gesucht, jedoch nichts gefunden...

mfg Bent

ryLIX 17. Feb 2010 17:51

Re: Akkukapazität auslesen
 
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Müsste Alles enthalten was du willst

Threads dazu gibts auch
z.b. http://www.delphipraxis.net/internal...hlight=battery

Bent1995 17. Feb 2010 18:00

Re: Akkukapazität auslesen
 
Vielen Dank für deine Schnelle Antwort...

Ich brauche ja diese beiden Funktionen:

DesignedCapacity;
FullChargedCapacity;

jedoch weiß ich nicht wie ich diese anwenden soll...

Knnst du mir vllt. einen Tipp geben?

mfg

ryLIX 17. Feb 2010 18:12

Re: Akkukapazität auslesen
 
Ich hab grad was einfacheres gefunden.

GetSystemPowerStatus: http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
SYSTEM_POWER_STATUS: http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

System_Power_Status enthält entspechende infos:
Zitat:

BatteryLifeTime

The number of seconds of battery life remaining, or –1 if remaining seconds are unknown.
BatteryFullLifeTime

The number of seconds of battery life when at full charge, or –1 if full battery lifetime is unknown.
Infos über die Anwendung gibts hier:
http://www.delphi-treff.de/tipps/sys...s%20ermitteln/

Bent1995 17. Feb 2010 18:19

Re: Akkukapazität auslesen
 
Mein Quelltext:

Delphi-Quellcode:
    Label23.Caption:= IntToStr(BatteryFullLifeTime);
Dabie kommt i wie 4687076854 raus... kann ich nicht ganhz glauben da das eine ganze ewigkeit währe...

was mach ich falsch?

hathor 17. Feb 2010 18:48

Re: Akkukapazität auslesen
 
kmbattinfo:
http://ftp.vector.co.jp/pack/winnt/u...fo-0-5-0-1.zip

Batinf:
http://www.yeahware.com/download/BatInf.zip

Bent1995 17. Feb 2010 18:50

Re: Akkukapazität auslesen
 
Super^^ Japanisch meine Hauptsprache... Verstehe gar nichts...

ryLIX 17. Feb 2010 19:25

Re: Akkukapazität auslesen
 
Zitat:

Zitat von Bent1995
Mein Quelltext:

Delphi-Quellcode:
    Label23.Caption:= IntToStr(BatteryFullLifeTime);
Dabie kommt i wie 4687076854 raus... kann ich nicht ganhz glauben da das eine ganze ewigkeit währe...

was mach ich falsch?


Hmm sehr seltsam bei meinem NetBook ist das ergenis von BatteryLifeTime 13600 sec.
Was ca 3.5h gibt und realistisch ist da der Akku zu 91% Voll ist :)

Und BatteryFullLifeTime ist -1 O.o

Luckie 17. Feb 2010 19:28

Re: Akkukapazität auslesen
 
http://www.michael-puff.de/Developer...erStatus.shtml

Bent1995 17. Feb 2010 19:33

Re: Akkukapazität auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
So es funktioniert soweit... guckts euch mal an!

(für die registrierung: linkes edit 1 und rechtes edit 4)

mfg

Helmi 17. Feb 2010 19:45

Re: Akkukapazität auslesen
 
Zitat:

Zitat von Bent1995
So es funktioniert soweit... guckts euch mal an!

(für die registrierung: linkes edit 1 und rechtes edit 4)

speichert der sich dieRegistrierung und falls ja wo?

hathor 17. Feb 2010 19:46

Re: Akkukapazität auslesen
 
An der Prozessorgeschwindigkeit musst Du noch arbeiten - das sind nur Hausnummern.

Warum nimmst Du nicht:
http://www.delphipraxis.net/internal...=tcpufrequency

Delphi-Quellcode:
type
  PROCESSOR_POWER_INFORMATION = packed record
    Number: Cardinal;
    MaxMhz: Cardinal;
    CurrentMhz: Cardinal;
    MhzLimit: Cardinal;
    MaxIdleState: Cardinal;
    CurrentIdleState: Cardinal;
  end;
  PPROCESSOR_POWER_INFORMATION = ^PROCESSOR_POWER_INFORMATION;

  TCPUFrequency = packed record
    CurrentMhz: Cardinal;
    MaxMhz: Cardinal;
    MhzLimit: Cardinal;
  end;

var
  CPUFrequency: TCPUFrequency;

function GetCPUFrequency(var CPUFrequency: TCPUFrequency): DWORD;
var
  ppi: PROCESSOR_POWER_INFORMATION;
  err: DWORD;
begin
  ZeroMemory(@ppi, sizeof(PROCESSOR_POWER_INFORMATION));
  err := CallNTPowerInformation(11, nil, 0, @ppi, sizeof(PROCESSOR_POWER_INFORMATION));
  if err = 0 then
  begin
    CPUFrequency.CurrentMhz := ppi.CurrentMhz;
    CPUFrequency.MaxMhz := ppi.MaxMhz;
    CPUFrequency.MhzLimit := ppi.MhzLimit;
  end;
  result := err;
end;
//-------------------------------------
function ReadFREQ : Boolean;
var
  err: DWORD;
begin
  ZeroMemory(@CPUFrequency, sizeof(TCPUFrequency));
  err := GetCPUFrequency(CPUFrequency);
  if err = 0 then result:= true else result:= false;
end;

Luckie 17. Feb 2010 19:47

Re: Akkukapazität auslesen
 
Was ist ein krietische Ladezustand? Ich habe einen Desktoprechner. Und was soll die dämliche Registration und wo wird sie gespeichert?

Gehstock 17. Feb 2010 19:51

Re: Akkukapazität auslesen
 
Speicherinfos sind falsch bei mir 2gb statt 4gb bzw. weil ich mit nem Win32 System arbeite sollte irgendwas mit 3 gb rauskommen
außerdem ist mindestens ein Rechtschreibfehler drin (der stach ins Auge)


Edit: Luckie hat ihn auch gesehen

Bent1995 17. Feb 2010 20:07

Re: Akkukapazität auslesen
 
Zitat:

Zitat von Helmi
Zitat:

Zitat von Bent1995
So es funktioniert soweit... guckts euch mal an!

(für die registrierung: linkes edit 1 und rechtes edit 4)

speichert der sich dieRegistrierung und falls ja wo?

1. Ja er speicher die Registrierung in der Registry!
2. Hier: HKEY_CURRENT_USER --> Software\BatteryInfo\2010\0001

Luckie 17. Feb 2010 20:14

Re: Akkukapazität auslesen
 
Und? Habe ich registriert?

Bent1995 17. Feb 2010 20:38

Re: Akkukapazität auslesen
 
Erstmal vielen Dank für eure Rezessionen!

1. Es ist noch nicht fertig...
2. Bei Desktoprechnern funzt das Tool net...

Luckie 17. Feb 2010 20:44

Re: Akkukapazität auslesen
 
Du hast meine Frage zur Registrierung nicht beantwortet.

Bent1995 17. Feb 2010 20:50

Re: Akkukapazität auslesen
 
Zitat:

Zitat von Luckie
Du hast meine Frage zur Registrierung nicht beantwortet.

Ich habe deine Frage leider nicht verstanden... Könntest du sie bitte noch etwas genauer erläutern?

Luckie 17. Feb 2010 20:56

Re: Akkukapazität auslesen
 
Ich will von dir wissen, ob ich dein Programm registriert habe.

Mithrandir 17. Feb 2010 20:59

Re: Akkukapazität auslesen
 
Zum Testen in der DP solltest du diese Funktion vielleicht herausnehmen, sie nervt nur.

Luckie 17. Feb 2010 21:07

Re: Akkukapazität auslesen
 
Vor allem, weil man den Registry Eintrag immer wieder löschen muss.

Bent1995 17. Feb 2010 21:24

Re: Akkukapazität auslesen
 
Zitat:

Zitat von Luckie
Ich will von dir wissen, ob ich dein Programm registriert habe.

Woher soll ich das wissen... Das ist nicht über das Internet mit mir verbunden, also kann ich dir das nicht sagen...

Luckie 17. Feb 2010 21:28

Re: Akkukapazität auslesen
 
Zitat:

Zitat von Bent1995
Zitat:

Zitat von Luckie
Ich will von dir wissen, ob ich dein Programm registriert habe.

Woher soll ich das wissen... Das ist nicht über das Internet mit mir verbunden, also kann ich dir das nicht sagen...

Und warum dann die Registrierung, wenn es auch ohne Registrierung voll nutzbar ist? Zu mal man einfach nur den Registryschlüssel erstellen muss, um es zu registrieren.

Bent1995 17. Feb 2010 21:39

Re: Akkukapazität auslesen
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Bent1995
Zitat:

Zitat von Luckie
Ich will von dir wissen, ob ich dein Programm registriert habe.

Woher soll ich das wissen... Das ist nicht über das Internet mit mir verbunden, also kann ich dir das nicht sagen...

Und warum dann die Registrierung, wenn es auch ohne Registrierung voll nutzbar ist? Zu mal man einfach nur den Registryschlüssel erstellen muss, um es zu registrieren.

Woher weiß man denn den Regitry Key wenn man den Programmierer nicht kennt, und woher weiß man den Wert, den man eintragen muss?

hathor 17. Feb 2010 21:41

Re: Akkukapazität auslesen
 
Jetzt macht doch den Kleinen nicht so fertig....

Luckie 17. Feb 2010 21:42

Re: Akkukapazität auslesen
 
Weil ich es meinem Kumpel sage, wenn ich es weitergebe oder weil ich mir einfach die Exe angucke und die Strings sehe oder weil ich innerhalb von fünf Minuten die Abfrage in der Exe umgangen habe. Mein Tipp, lass den Unsinn. Und schon gar nicht zum Testen hier im Forum.

Mithrandir 17. Feb 2010 21:53

Re: Akkukapazität auslesen
 
Zitat:

Zitat von Luckie
Und schon gar nicht zum Testen hier im Forum.

Was ich ja quasi schon hier geschrieben habe. Vielleicht solltet ihr mal wieder auf ein vernünftiges Level runterkommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 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