HowTo: Akku oder Netzbetrieb unterscheiden

Bei einigen Installationen oder Änderungen am Computer, wie z.B. einem BIOS Update ist es wichtig, dass der Computer an der Steckdose (am Strom) angeschlossen ist und nicht nur vom eingebauten Akku betrieben wird. Die Installation, wie ein Windows Service Pack oder die BIOS Update Routine, fragen diesen Zustand ab, doch dann kann es ggf. schon zu spät sein bzw. die Installation ist schon „mitten drin“. Für diesen Fall hatte ich bereits vor einiger Zeit bereits dieses kleine Tool geschrieben, was unter Windows XP wunderbar funktionierte. Vor kurzem wurde ich gefragt, ob ich diesbezüglich etwas hätte, aber es sollte unter Windows 7 x64 funktionieren. So holte ich das „alte“ Tool raus und es funktionierte zu meiner Freude weiterhin. Ich habe die „GetPowerState.exe“ jedoch dahingehend verändert, dass der Zustand „Netzbetrieb“ oder „Batteriebetrieb“ nun auch in dem 64bit Teil der Windows Registry gespeichert wird.

Aufruf und Ergebnis

Wie nutzt man nun das Tool während der Softwareverteilung? Dazu ruft man die GetPowerState.exe auf und prüft anschließend die Registry. Die GetPowerState.exe speichert das Ergebnis unter „HKLM\SOFTWARE\matrix42\ClientInfo\PowerState“. Hier werden die Eigenschaften „PowerState“ und „BatteryState“ gespeichert.

  • PowerState kann die Werte „Battery“ (Batteriebetrieb) oder „AC“ (Netzbetrieb) annehmen.
  • BatteryState enthält den prozentualen Ladezustand der Batterie.

Im Empirum Paket kann dies in der Setup.inf wie folgt abgeprüft werden:

CALLHIDDEN "%SRC%\GetPowerState.exe"
IF %HKLM,Software\Matrix42\ClientInfo\PowerState,PowerState% <> "AC" THEN "ErrorHandling" EndIf

[ErrorHandling]
ErrorLogMsg "Computer is on battery. Exiting Script! | Computer ist nicht am Stromnetz angeschlossen. Script wird beendet!" 
AbortSilent

GetPowerState.exe gibt es hier zum Download:
GetPowerState (485 Downloads)
MD5 Hash der Downloaddatei: D74C4B71639872DABA45C844584F609D38CE427C

3 Kommentare Schreibe einen Kommentar

  1. in der IF Abfrage des obigen Beispieles ist der Pfad falsch angegeben…

    IF %HKLM,Software\Matrix42\PowerState,PowerState%
    sollte
    IF %HKLM,Software\Matrix42\ClientInfo\PowerState,PowerState%
    lauten

  2. Hallo,

    ich würde gerne diese Tool mal teste, Leider läßt sich das Tool nicht mehr downloaden.
    Gibt es eine andere Möglichkeit diese Tool zu erhalten?

    Danke im Voraus.

    GRuß
    Frank

Schreibe einen Kommentar