Einzelnen Beitrag anzeigen

igschliff

Registriert seit: 11. Jan 2009
9 Beiträge
 
#9

Re: energiesparplan unter vista ändern

  Alt 11. Jan 2009, 21:09
hi,

danke. ich leider auch nicht, denn ich werde aus dem manual nicht schlau. da steht

Delphi-Quellcode:
DWORD WINAPI PowerSetActiveScheme(
  __in_opt HKEY UserRootPowerKey,
  __in const GUID *SchemeGuid
);
aber ich kann da leider keine datentypen rauslesen.

meint ihr, das geht auch irgendwie, indem man die registry-keys kopiert? unter HKEY_CURRENT_USER\POWER_CFG->CURRENTPOWERPOLICY kann man das schema an sich umstellen, doch die einstellungen des neuen energieschemas werden nicht übernommen. ich nehme also an, dass man die werte unter HKEY_CURRENT_USER\POWER_CFG\GLOBAL_POWER_POLICY->Policies updaten müsste und da halt die werte aus einem der anderen schemata eintragen sollte. die werte sind vom typ REG_BINARY und ich bekomme es nicht hin, sie so auszulesen, dass ich sie anschließend wieder reinschreiben kann. ich probiere es im moment so:

Delphi-Quellcode:
...
var regist : TRegistry;
      buffer : array[1..256] of Int64;
    buffsize : integer;
...
begin
...
  try
    regist:=TRegistry.Create;
    regist.rootKey:=HKEY_CURRENT_USER;
    regist.openkey('Control Panel\PowerCfg\PowerPolicies\'+IntToStr(schema),true);
    buffsize := regist.GetDataSize('Policies');
    regist.ReadBinaryData('Policies',buffer,buffsize);
  finally
    regist.CloseKey;
  end;
  regist.free;

  try
    regist:=TRegistry.Create;
    regist.rootKey:=HKEY_CURRENT_USER;
    regist.openkey('Control Panel\PowerCfg\GlobalPowerPolicy',true);
    regist.WriteBinaryData('Policies',buffer,buffsize);
  finally
    regist.CloseKey;
  end;
  regist.free;
...
die werte, die dann in HKEY_CURRENT_USER\POWER_CFG\GLOBAL_POWER_POLICY->Policies geschrieben werden, sind aber irgendwie nicht die werte, die vorher ausgelesen werden. ich danke allen, die mir bisher geholfen haben und würde mich sehr freuen, wenn ich auch jetzt noch einmal eure hilfe bekäme.

gruß,
igschliff
  Mit Zitat antworten Zitat