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