Ich habe eine Anwendung mit Admin-Rechten und möchte einen Registry-Stringschlüssel auslesen. Das funktioniert auch unter der 32 Bit-Version von Windows 7 mit folgendem Code ganz gut:
Delphi-Quellcode:
function GetWindowsGUID : string;
var CryptoGUID : TRegistry;
MachineGUIDStr : string;
begin
Result:='';
CryptoGUID:=TRegistry.Create;
try
CryptoGUID.RootKey:=HKEY_LOCAL_MACHINE;
CryptoGUID.Access :=KEY_READ;
if CryptoGUID.OpenKeyReadOnly('Software\Microsoft\Cryptography') then
begin
MachineGUIDStr:=CryptoGUID.ReadString('MachineGuid');
Result:=Uppercase(MachineGUIDStr);
end;
finylly
CryptoGUID.Free;
end;
end;
Bei einer 64 Bit-Version von Windows 7 kommt ein Leerstring zurück, und die Hilfe sagt auch, dass dies der Fall ist, wenn der Schlüssel nicht existiert. In Regedit sehe ich aber, dass er existiert. Woran kann das liegen?