Hallo möchte gerne herausfinden wie lange ein Akku bei einem Notebook hält,
da wir viele gebrauchte Laptops verkaufen und dort mit angegeben werden
soll, wie lange der Aku hält wollte ich ein Programm schreiben.
Hänge jetzt aber schon an der Aktualisierung der GUI fest.
Es sollen die Minuten gezählt werden, diese sollen in eine
TXT-Datei geschrieben werden. Die man nach dem herunterfahren
des Laptops, wenn der Akku leer ist, auslesen kann.
Dabei habe ich mir gedacht, das in der GUI die Anzahl der Minuten
und Prozentanzeige des Akkus stehen.
Irgendwie aktualisiert sich die GUI aber nicht.
Spoiler anzeigen
#include <GUIConstants.au3>
$s = ""
$battery= _BatteryQuery()
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 454, 193, 115)
$Label1 = GUICtrlCreateLabel("", 176, 152, 120, 90)
$Button1 = GUICtrlCreateButton("Button1", 56, 32, 81, 25, 0)
GUISetState(@SW_SHOW)
;MsgBox(0,'', $battery[0])
#EndRegion ### END Koda GUI section ###
;MsgBox(0,'', $s)
;AdlibEnable("_batteryquery", 500)
;GUICtrlSetData($Label1,$battery[3] / 60)
While 1
$nMsg = GUIGetMsg()
Select
Case $nmsg = $GUI_EVENT_CLOSE
ExitLoop
case $nMsg = $Button1
;AdlibEnable("_batteryquery", 500)
GUICtrlSetData($Label1,$battery[3] / 60)
MsgBox(0,'', $battery[3] /60)
EndSelect
WEnd
Func _BatteryQuery()
local $SystemPower, $ret, $array[4]
;GUICtrlSetData($Label1,$array[3] / 60)
; Setup $array and $SystemPower
$SystemPower = DllStructCreate("ubyte;ubyte;ubyte;ubyte;ulong;ulong")
If @error Then
SetError(-1)
Return $array
EndIf
; make the DllCall
$ret = DllCall("kernel32.dll", "int", "GetSystemPowerStatus", "ptr", DllStructGetPtr($SystemPower))
If @error Then;DllCall Failed
SetError(-2)
$SystemPower = 0
Return $array
EndIf
If Not $ret[0] Then; GetSystemPowerStatus Failed
SetError(-3)
$SystemPower = 0
Return $array
EndIf
; Fill the array
$array[0] = DllStructGetData($SystemPower, 1);AC
$array[1] = DllStructGetData($SystemPower, 2);Battery Charge
$array[2] = DllStructGetData($SystemPower, 3);Battery Charge %
$array[3] = DllStructGetData($SystemPower, 5);Sec Battery Left
; free the struct
$SystemPower = 0
Return $array
[/autoit] [autoit][/autoit] [autoit];GUICtrlSetData($Label1,$array[3] / 60)
EndFunc ;==>_BatteryQuery