Piszę w Delphi standardowy kod do zapisania klucza w rejestrze Windows i nie działa. Żadnego wyjątku, komunikatu, nic. Coś mnie trafia! Klucz "iexplore.exe" pozostaje niezmieniony.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN
Moim celem jest wyłączenie tych nikomu niepotrzebnych zabezpieczeń (jestem starym DOS'owcem i wkurza mnie to co MS wymyśla). UAC i inne bzdury oczywiście wyłączone.
Co gorsze, nawet po eksporcie klucza do pliku a.reg i zmianie wartości a następnie imporcie (tylko Windows) też nie działa.
Jak spowodować aby aplikacja w Delphi mogła zmienić ten klucz? "Uruchom jako Administrator" też nie działa.
procedure TMainForm.SetRegistryConfiguration;
const
Info = 'Writing registry key config. Key: %s | Value: %s=%s';
Error = 'Error writing registry key config. Key: %s | Value is still: %s=%s';
var
Reg: TRegistry;
Key, Name: string;
Val_int: integer;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Key := 'SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN';
if Reg.OpenKey(Key, True) = True then
try
Name := 'iexplore.exe'; // Zapisanie
MakeLog(Format(Info,[Key, Name, '0']), 2);
Reg.WriteInteger(Name, 0);
Val_int := Reg.ReadInteger(Name); // Sprawdzenie czy się zapisało
if Val_int <> 0 then MakeLog(Format(Error,[Key, Name, IntToStr(Val_int)]), 0);
finally
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;