cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
thunder
Level 5

32bit installer can't use RegDBGetKeyValueEx get values on VistaBiz 64bit

Hi

I have 2 questions,

1, I change "Summary information Stream>Template Summary" value to Intel,x64;1033. then I rebuild my installer but I found out the output msi file can't running on WinXP32 and VistaBiz64 OS, why this happen, does this mean I can't select "Intel" and "x64" together?

2, I use "Intel;1033" in Template, and write a custom code to read registry like below:

begin
regKeyName = "SOFTWARE\\COMPANY\\Product\\versionNO\\Setup";
RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
if (RegDBKeyExist (regKeyName) < 0) then
MsiSetProperty(ISMSI_HANDLE, "ProdStat", "0" );
else
RegDBGetKeyValueEx(regKeyName, "Directory", nvType, strRootPath, nsize);
MsiSetProperty(ISMSI_HANDLE, "ROOTDIR", strRootPath);
MsiSetProperty(ISMSI_HANDLE, "ProdStat", "1" );
endif;
end;

finally, on 32bit OS, I can get the result form RegDBGetKeyValueEx, but in 64 bit OS, I can't get any result.
(I install 32bit application on 32bit OS, 64bit application on 64bit OS)


who can tell me how to get the path infomation on 64 bit OS


Thanks
Thunder
Labels (1)
0 Kudos
(2) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Yes, (1) is impossible; for more information search up Heath Stewart's blog on multiple packages and multiple architectures.

For (2), if you need to search the 64-bit areas of the registry (as opposed to the 32-bit WOW64 areas), you'll need to use something like REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY before your registry read. Don't forget to reset REGDB_OPTIONS as appropriate.
0 Kudos
thunder
Level 5

Great! code works..

Thanks!!!!:D
0 Kudos