Inno Setup doesn't allow access to all registry keys, why?
inno-setup, pascalscript, registry
Solution
It's not Inno Setup's fault at all; the Registry is virtualized in Vista and higher, and on 64-bit there are branches for native 64-bit and WOW'ed 32-bit.
In this case, since Inno Setup is a 32-bit program, the OS directs all of its `HKLM\Software` registry requests to the `WOW6432Node`.
To handle the registry virtualization in your installer, you can specifically use x86 and x64 key roots. For example, use `HKLM32` or `HKLM64` in your `[Registry]` section when you need to differentiate. In `[Code]` section, wrap registry helper function calls using `HKLM64` in an `if IsWin64` block.
This example works ok from our installer, whether or not the installer is declared as an x64 installer.
function Mobu120x64IsAvailable(): Boolean;
var
resultString: String;
begin
resultString := 'No';
if IsWin64 then
begin
Result := RegValueExists(HKLM64, 'SOFTWARE\Autodesk\MotionBuilder\2012', 'InstallPath');
if Result then begin
resultString := 'Yes';
end;
Log('Win64: Found Mobu 12.0 for x64?:' + resultString);
end;
end;
Problem
I use this code to know if a key exists or not: ``` if RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Autodesk') then begin MsgBox('Key exists!!', mbInformation, MB_OK); end; ``` for this example, it works, I have the message box, but with this it doesn't: ``` if RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Autodesk\Maya') then begin MsgBox('Key exists!!', mbInformation, MB_OK); end; ``` But the `Maya` key exists on my computer. Can anybody help me? EDIT : In fact, it seems that Inno Setup don't access to the right keys... For example, with this code I list all the subkeys of `HKEY_LOCAL_MACHINE\SOFTWARE`, but (!) the result is all subkey of `HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node` ... ``` if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, 'SOFTWARE', Names) then begin S := ''; for I := 0 to GetArrayLength(Names)-1 do S := S + Names[I] + #13#10; MsgBox('List of subkeys:'#13#10#13#10 + S, mbInformation, MB_OK); end; ``` Why this `Wow6432Node` key?