OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\...', false)
wird nicht erkannt.
Was heißt das "wird nicht erkannt"?
Dies funktioniert bei mir einwandfrei:
Delphi-Quellcode:
key:= TRegistry.Create;
try
key.RootKey:= HKEY_LOCAL_MACHINE;
key.Access:= KEY_READ;
if (_bIsWow64 AND Self.bIsX64) then
key.Access:= key.Access OR KEY_WOW64_64KEY;
if key.OpenKey(sRegKey, False) then
if key.ValueExists(sRegVal) then
sRegData:= key.ReadString(sRegVal);
finally
key.CloseKey;
key.Free;
end; // try..finally
Die Variablen sRegKey, _bIsWow64 (bzw. deren Werte) kommen dabei von außen.
Ergänzung: Übrigens ist es Unsinn, mit einer 32 Bit Anwendung in den 64 Bit Zweig zu schreiben, gerade wenn es um solche Uninstall-Keys geht.
MfG Dalai