Writting settings to the registry, shared by x64 and x86 apps (bypassing registry redirection)
Question
I want to write application settings in the registry, that are shared by x86 and x64 applications running on Windows 7 x64.
The best practice is to save them in HKEY_LOCAL_MACHINE\Software\Company\Product, but that gets redirected when in WOW64.
Can I write them in HKEY_LOCAL_MACHINE\System.. instead? Or System is reserved for other thigns?
Solution
When in x64 mode, you can still access the values of the WOW64 mode. The WOW64 HKEY_LOCAL_MACHINE\Software\Company\Product will be under HKEY_LOCAL_MACHINE\Software\Wow6432Node\Company\Product.
Edit:
Reflection can also be disabled for certain keys, as it is described here: http://msdn.microsoft.com/en-us/library/ms724072(VS.85).aspx
OTHER TIPS
You can use the SetRegView option as described in the manual: http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.7.6
Function .onInit SetRegView 64 ReadRegStr $INSTDIR HKLM Software\NSIS "" SetRegView 32 FunctionEnd