cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Janakiram
Level 4

64 bit Registry entry going into 32 bit registry area

Hi Team,

I really need your help here!!

All my MSI needed to do is install 1 registry key into HKLM>Software>Vendor Name but it is going into HKLM>Software>Wow6432Node>Vendor Name

This is happening only in windows 10(64bit OS), office 365 (64 bit), office excel version is 16.

It is working fine in windows 2008 R2(64 bit OS). office (64 bit), office excel version 14.

I tried changing below as well...

highlight Organization>Components in the left pane. Then highlight the component that you've setup to write the registry keys. Then, in the options on the right, set the following:
-change the "64-Bit Component" setting to "Yes"
-change the "Disable Registry Reflection" value to "Yes"

Still it is writing registry entry into (Wow6432Node). Our code is


MsiGetProperty(hMSI, "EXCEL32BIT2007PLUS_INSTALLED", offcie32Version, nvSize);

office32version property is TRUE in our case. (as i already mentioned it is working on other host(OS 64 bit, office 64 bit). Issue is happening only in windows 10 64 bit, office 365 64 bit.


if(SYSINFO.bIsWow64 != 0) then

if (offcie32Version == "FALSE") then

//64-bit OS and Office 64
smExtensionsKey = "SOFTWARE\VendorName\\SM\\Extensions\\{2AB4F230-ED75-4dad-AAA5-6AA2NB9D35JF}";
sMExtensionPath = svInstallDir ^ "product\\smProduct\\Client\\bin-64\\SMxxxxxx.dll";

else

//64-bit OS But Office 32
smExtensionsKey = "SOFTWARE\\Wow6432Node\\VendorName\\SM\\Extensions\\{2AB4F230-ED75-4dad-AAA5-6AA2NB9D35JF}";
sMExtensionPath = svInstallDir ^ "product\\smProduct\\Client\\bin\\SMxxxxx.dll";
RemoveDirectoryA(svInstallDir ^ "product\\smProduct\\Client\\bin-64");

endif;
else

MessageBox("inside first if, IS OS not a 64bit, yes", INFORMATION);
smExtensionsKey = "SOFTWARE\\VendorName\\SM\\Extensions\\{2AB4F230-ED75-4dad-AAA5-6AA2NB9D35JF}";
sMExtensionPath = svInstallDir ^ "product\\smProduct\\Client\\bin\\SMxxxxx.dll";
RemoveDirectoryA(svInstallDir ^ "product\\smProduct\\Client\\bin-64");

endif;

REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY;
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
RegDBSetKeyValueEx(smExtensionsKey, "", REGDB_STRING, sMExtensionPath, -1);
RegDBSetKeyValueEx(smExtensionsKey, "type", REGDB_STRING, "SMxxxx.xxxxx", -1);

// Flush the NT registry to all applications.

szEnv = "Environment";
pEnv = &szEnv;
SendMessage (HWND_BROADCAST, WM_WININICHANGE, 0, pEnv );

end;

 

Labels (1)
0 Kudos
(12) Replies