Also bei mir einwandfrei (Lazarus, aber TRegistry sollte 100% kompatibel sein) ein paar Tests:
Code:
program regwinupdate;
uses
Registry;
var
reg: TRegistry;
begin
reg := TRegistry.Create(KEY_READ or KEY_WOW64_64KEY);
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.KeyExists('\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\') then begin
WriteLn('[+] Key exists.');
end else begin
WriteLn('[-] Key missing.');
end;
if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\', False) then begin
WriteLn('[+] Key opened.');
end else begin
WriteLn('[-] Unable to
access.');
end;
if reg.KeyExists('\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired') then begin
WriteLn('[i] Reboot required.');
end else begin
WriteLn('[i] No reboot required.');
end;
finally
reg.Free;
end;
ReadLn;
end.
Und sonst: OutputDebugString(PChar(SysErrorMessage(GetLastErr or)))... prüf doch einfach, warum es nicht geht