This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Interface registry entries not reflected
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 30, 2014
04:34 AM
Interface registry entries not reflected
Hi
I have a basic MSI project in which we include a .reg file to set up COM entries for a particular 32-bit component. Since the advent of Windows 7, registry reflection has been disabled so these entries always appear under HKEY_CLASSES_ROOT\Wow6432Node and not under HKEY_CLASSES_ROOT as they did before. However, certain apps do not recognise the component as registered unless they are under HKEY_CLASSES_ROOT, which is where they appear if the component is registered manually. I have tried (and so far failed) to force these entries to be set under HKEY_CLASSES_ROOT by default. I've tried setting "Disable Registry Reflection", some InstallScript to set REGDB_OPTIONS but neither of these make any difference, and I really don't want to have to resort to making the component self-register. Does anyone know of a method I can use to force these entries into the right place?
I have a basic MSI project in which we include a .reg file to set up COM entries for a particular 32-bit component. Since the advent of Windows 7, registry reflection has been disabled so these entries always appear under HKEY_CLASSES_ROOT\Wow6432Node and not under HKEY_CLASSES_ROOT as they did before. However, certain apps do not recognise the component as registered unless they are under HKEY_CLASSES_ROOT, which is where they appear if the component is registered manually. I have tried (and so far failed) to force these entries to be set under HKEY_CLASSES_ROOT by default. I've tried setting "Disable Registry Reflection", some InstallScript to set REGDB_OPTIONS but neither of these make any difference, and I really don't want to have to resort to making the component self-register. Does anyone know of a method I can use to force these entries into the right place?
(4) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 30, 2014
08:21 AM
datamine,
In my InstallScript MSI projects, I have used "REGDB_OPTION_WOW64_64KEY" to read from the 64bit section of the registry (non-Wow6432Node). Example:
That works for HKEY_LOCAL_MACHINE, I don't know why it wouldn't work for HKEY_CLASSES_ROOT.
HTH
In my InstallScript MSI projects, I have used "REGDB_OPTION_WOW64_64KEY" to read from the 64bit section of the registry (non-Wow6432Node). Example:
//look in 64-bit section
REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY;
svTemp = "";
RegDBGetKeyValueEx( "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Client",
"Version",
nvType,
svTemp,
nvSize );
// back to looking in Wow6432Node section
REGDB_OPTIONS = REGDB_OPTIONS & ~REGDB_OPTION_WOW64_64KEY;
That works for HKEY_LOCAL_MACHINE, I don't know why it wouldn't work for HKEY_CLASSES_ROOT.
HTH
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 30, 2014
08:54 AM
Thanks for the reply 🙂
I tried a custom InstallScript action which sets REGDB_OPTIONS in this way, just before WriteRegistryValues (which I assume will write the contents of the Registry table) but the result is the same unfortunately. I could probably achieve the desired effect entirely in InstallScript but that defeats the object (and flexibility) of merging a .reg file at build time, there are too many entries to add in script.
I tried a custom InstallScript action which sets REGDB_OPTIONS in this way, just before WriteRegistryValues (which I assume will write the contents of the Registry table) but the result is the same unfortunately. I could probably achieve the desired effect entirely in InstallScript but that defeats the object (and flexibility) of merging a .reg file at build time, there are too many entries to add in script.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 01, 2014
05:18 AM
It turns out this was a red herring, it works fine when the entries are in Wow6432Node after all, there were just a few missing.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 01, 2014
07:53 AM
Glad you figured it out!