Re: [WiX-users] How to copy registry subkey which includes some entries
1 - http://msdn.microsoft.com/en-us/library/aa372497.aspx 2 - Nope you'll have to do it the long way. You'll need 2 MSI's if you want to access the 64-bit areas of the registry on x64 platforms. MSI's are platform architecture specific. Palbinder Sandher Software Deployment IT Administrator T: +44 (0) 141 945 8500 F: +44 (0) 141 945 8501 http://www.iesve.com **Design, Simulate + Innovate with the Virtual Environment** Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP Email Disclaimer -Original Message- From: little.forest [mailto:little.for...@ymail.com] Sent: 04 August 2010 01:28 To: wix-users@lists.sourceforge.net Subject: [WiX-users] How to copy registry subkey which includes some entries We need to do these: 1. Detect the HKCU\Software\CompanyX\ProductY key(this key includes 5 entries) in registry, if the key exists, then copy it to be HKCU\Software\CompanyX\ProductY_Fix. 2. For 32 bit machine, detect if HKLM\Software\CompanyX\ProductY exists. If it exists, then copy the key to be HKLM\Software\CompanyX\ProductY_Fix. 3. For 64 bit machine, detect if HKLM\Software\Wow6432Node\CompanyX\ProductY exists. If it exists, then copy the key to be HKLM\Software\Wow6432Node\CompanyX\ProductY_Fix. I have a couple of questions: 1. How to detect if the target machine is 32 bit or 64 bit? 2. The ProductY key includes 5 entries, is there any easy way to copy the whole key instead of doing it one by one entry? I know a way to it for one entry: - detect the new key - if it doesn't exist, then query the old key, and then create the new key Property Id='QUERY_PRODUCTY_LIB' RegistrySearch Id='QueryProductYKey' Root='HKCU' Key='Software\CompanyX\ProductY' Name='lib' Type='raw' / /Property Property Id='DETECT_PRODUCTY_FIX' RegistrySearch Id='DetectProductYFix' Root='HKCU' Key='Software\CompanyX\ProductY_Fix' Type='raw' / /Property Component Id=WriteRegKey Guid=* ConditionNOT DETECT_PRODUCTY_FIX and QUERY_PRODUCTY_LIB ''/Condition RegistryKey Root=HKCU Key=Software\CompanyX\ProductY_Fix Action=create RegistryValue Type=string Name='lib' Value='[QUERY_PRODUCTY_LIB]' KeyPath=yes / /RegistryKey /Component ComponentRef Id=WriteRegKey / So is there an easy way that I can do it for the whole key once? Otherwise, I'll have to repeat these 25 lines of code multiple times. That is really error-prone. Based on the requirements we have, I'd think we'll have to end with 375 lines of coce((5+5+5) x 25 = 375) to deal with HKCU, HKLM, and HKLM\Software\Wow6432Node. But really, they are really identical code except the key entries are different such as 'lib', 'network', or 'key' etc. If there is a way to do it easily, please let me know. Also I'm stuck on how to detect if the machine is 32 bit or 64 bit. Many thanks. -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to copy registry subkey which includes some entries
Thanks Palbinder. It's good to know the VersionNT64 property. It's sad to learn I've to do it the long way. From: Pally Sandher pally.sand...@iesve.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Wed, August 4, 2010 3:39:46 AM Subject: Re: [WiX-users] How to copy registry subkey which includes some entries 1 - http://msdn.microsoft.com/en-us/library/aa372497.aspx 2 - Nope you'll have to do it the long way. You'll need 2 MSI's if you want to access the 64-bit areas of the registry on x64 platforms. MSI's are platform architecture specific. Palbinder Sandher Software Deployment IT Administrator T: +44 (0) 141 945 8500 F: +44 (0) 141 945 8501 http://www.iesve.com **Design, Simulate + Innovate with the Virtual Environment** Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP Email Disclaimer -Original Message- From: little.forest [mailto:little.for...@ymail.com] Sent: 04 August 2010 01:28 To: wix-users@lists.sourceforge.net Subject: [WiX-users] How to copy registry subkey which includes some entries We need to do these: 1. Detect the HKCU\Software\CompanyX\ProductY key(this key includes 5 entries) in registry, if the key exists, then copy it to be HKCU\Software\CompanyX\ProductY_Fix. 2. For 32 bit machine, detect if HKLM\Software\CompanyX\ProductY exists. If it exists, then copy the key to be HKLM\Software\CompanyX\ProductY_Fix. 3. For 64 bit machine, detect if HKLM\Software\Wow6432Node\CompanyX\ProductY exists. If it exists, then copy the key to be HKLM\Software\Wow6432Node\CompanyX\ProductY_Fix. I have a couple of questions: 1. How to detect if the target machine is 32 bit or 64 bit? 2. The ProductY key includes 5 entries, is there any easy way to copy the whole key instead of doing it one by one entry? I know a way to it for one entry: - detect the new key - if it doesn't exist, then query the old key, and then create the new key Property Id='QUERY_PRODUCTY_LIB' RegistrySearch Id='QueryProductYKey' Root='HKCU' Key='Software\CompanyX\ProductY' Name='lib' Type='raw' / /Property Property Id='DETECT_PRODUCTY_FIX' RegistrySearch Id='DetectProductYFix' Root='HKCU' Key='Software\CompanyX\ProductY_Fix' Type='raw' / /Property Component Id=WriteRegKey Guid=* ConditionNOT DETECT_PRODUCTY_FIX and QUERY_PRODUCTY_LIB ''/Condition RegistryKey Root=HKCU Key=Software\CompanyX\ProductY_Fix Action=create RegistryValue Type=string Name='lib' Value='[QUERY_PRODUCTY_LIB]' KeyPath=yes / /RegistryKey /Component ComponentRef Id=WriteRegKey / So is there an easy way that I can do it for the whole key once? Otherwise, I'll have to repeat these 25 lines of code multiple times. That is really error-prone. Based on the requirements we have, I'd think we'll have to end with 375 lines of coce((5+5+5) x 25 = 375) to deal with HKCU, HKLM, and HKLM\Software\Wow6432Node. But really, they are really identical code except the key entries are different such as 'lib', 'network', or 'key' etc. If there is a way to do it easily, please let me know. Also I'm stuck on how to detect if the machine is 32 bit or 64 bit. Many thanks. -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] How to copy registry subkey which includes some entries
We need to do these: 1. Detect the HKCU\Software\CompanyX\ProductY key(this key includes 5 entries) in registry, if the key exists, then copy it to be HKCU\Software\CompanyX\ProductY_Fix. 2. For 32 bit machine, detect if HKLM\Software\CompanyX\ProductY exists. If it exists, then copy the key to be HKLM\Software\CompanyX\ProductY_Fix. 3. For 64 bit machine, detect if HKLM\Software\Wow6432Node\CompanyX\ProductY exists. If it exists, then copy the key to be HKLM\Software\Wow6432Node\CompanyX\ProductY_Fix. I have a couple of questions: 1. How to detect if the target machine is 32 bit or 64 bit? 2. The ProductY key includes 5 entries, is there any easy way to copy the whole key instead of doing it one by one entry? I know a way to it for one entry: - detect the new key - if it doesn't exist, then query the old key, and then create the new key Property Id='QUERY_PRODUCTY_LIB' RegistrySearch Id='QueryProductYKey' Root='HKCU' Key='Software\CompanyX\ProductY' Name='lib' Type='raw' / /Property Property Id='DETECT_PRODUCTY_FIX' RegistrySearch Id='DetectProductYFix' Root='HKCU' Key='Software\CompanyX\ProductY_Fix' Type='raw' / /Property Component Id=WriteRegKey Guid=* ConditionNOT DETECT_PRODUCTY_FIX and QUERY_PRODUCTY_LIB ''/Condition RegistryKey Root=HKCU Key=Software\CompanyX\ProductY_Fix Action=create RegistryValue Type=string Name='lib' Value='[QUERY_PRODUCTY_LIB]' KeyPath=yes / /RegistryKey /Component ComponentRef Id=WriteRegKey / So is there an easy way that I can do it for the whole key once? Otherwise, I'll have to repeat these 25 lines of code multiple times. That is really error-prone. Based on the requirements we have, I'd think we'll have to end with 375 lines of coce((5+5+5) x 25 = 375) to deal with HKCU, HKLM, and HKLM\Software\Wow6432Node. But really, they are really identical code except the key entries are different such as 'lib', 'network', or 'key' etc. If there is a way to do it easily, please let me know. Also I'm stuck on how to detect if the machine is 32 bit or 64 bit. Many thanks. -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users