Since there is very little documentation about OpenBaseKey
, I'll expand on shifuimam's answer and provide a solution for the OP:
Private Sub Foo()
Dim myAppIs64Bit = Environment.Is64BitProcess
Dim baseKey As RegistryKey
If (myAppIs64Bit) Then
baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
Else
baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)
End If
Dim myAppKey As RegistryKey = baseKey.OpenSubKey("SOFTWARE\MyApp")
End Sub
If the app is 32-bit, myAppKey
points to HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MyApp
. If 64-bit, it points to HKEY_LOCAL_MACHINE\SOFTWARE\MyApp
.
The advantage of OpenBaseKey
is that it eliminates the need to reference Wow6432
in your code.