Try to use HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\Desktop10.0 for ArcGIS Desktop
It should works fine on 32bit and 64 bits WinOS.
if you need ArcGIS Engine
use HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\ArcGIS Engine Runtime
Good luck,
Public Function Is64Bit() 'will return 64 or 32 Is64Bit = GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth End Function
Public Function GetOSVersion() As String Select Case Environment.OSVersion.Platform Case PlatformID.Win32S Return "Win 3.1" Exit Function Case PlatformID.Win32Windows Select Case Environment.OSVersion.Version.Minor Case 0 Return "Win95" Exit Function Case 10 Return "Win98" Exit Function Case 90 Return "WinME" Exit Function Case Else Return "Unknown" Exit Function End Select Case PlatformID.Win32NT Select Case Environment.OSVersion.Version.Major Case 3 Return "NT 3.51" Exit Function Case 4 Return "NT 4.0" Exit Function Case 5 Select Case _ Environment.OSVersion.Version.Minor Case 0 Return "Win2000" Exit Function Case 1 Return "WinXP" Exit Function Case 2 Return "Win2003" Exit Function End Select Case 6 Return "Vista/Win2008Server/Windows7" ' Exit Function Case Else Return "Unknown" Exit Function End Select Case PlatformID.WinCE Return "Win CE" Exit Function End Select Return "Unknown" End Function
Many of our installers write values to the registry which are then read by our ArcGIS extensions. We've never had to change anything with the registry keys in order to make our applications install and run on both 32-bit and 64-bit machines. See this article on MSDN:
http://msdn.microsoft.com/en-us/library/aa384232(v=vs.85).aspx