Einzelnen Beitrag anzeigen

devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Abfragen der Eigenschaften eines Energieschemas

  Alt 30. Nov 2007, 11:23
Unter Vista heißt das ganze übrigens Energiesparplan.

Nun verwende ich mithilfe der Jedi-Bibliothek verschiedene Funktionen, um die Daten eines Energiesparplans auszulesen (hier das Wichtigste meines Codes):

Delphi-Quellcode:
USES JwaPowrProf, Dialogs;
VAR uiID : UINT;
    ActiveSchemaIndex : LPDWORD;
    CurrentPowerPolicy : POWER_POLICY;
    Name, Desc : STRING;
BEGIN
  IF GetActivePwrScheme(uiID) = True THEN
  BEGIN
    IF GetNamePowerScheme(uiID, Name, Desc) = True THEN
    BEGIN
      IF ReadPwrScheme(uiID, CurrentPowerPolicy) = True THEN
      BEGIN
        ShowMessage('Monitorabschaltung im Batteriebetrieb nach '+IntToStr(CurrentPowerPolicy.user.VideoTimeoutDc DIV 60)+' Minuten');
        ShowMessage('Festplattenabschaltung im Batteriebetrieb nach '+IntToStr(CurrentPowerPolicy.user.SpindownTimeoutDc DIV 60)+' Minuten');
        ShowMessage('Standby im Batteriebetrieb nach '+IntToStr(CurrentPowerPolicy.user.IdleTimeoutDc DIV 60)+' Minuten');
      END;
    END;
  END;
END;
Das ganze funktioniert unter Windows XP auch fehlerfrei, unter Vista werden aber vollkommen falsche Werte angezeigt. Ich erhalte hier bspw. folgendes:

Bildschirm: nach 5 Minuten abschalten (obwohl 1 Stunde eingestellt ist)
Festplatte: nach 10 Minuten abschalten (obwohl 15 Minuten eingestellt sind)
Standby: nach 5 Minuten aktivieren (obwohl nie eingestellt ist)

Arbeiten die Jedi-Funktionen wirklich fehlerhaft, oder woran kann das liegen ?

Ich hatte auch mal den Registry-Weg versucht, hier müsste aber der binäre Schlüssel "Policies" in HKEY_CURRENT_USER/Control Panel/PowerCfg/PowerPolicies" ausgewertet werden, und dieser besteht aus 80 hexadezimalen undokumentierten Werten. Von daher dachte ich schon, dass die Jedi-Funktionen nicht nur unter XP funktionieren.

Wer kann hier helfen ?
Devid
  Mit Zitat antworten Zitat