Поскольку документации по OpenBaseKey
очень мало, я остановлюсь на ответе шифуима и предоставлю решение для ОП:
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
Если приложение 32-разрядное, myAppKey
указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MyApp
. Если 64-битный, он указывает на HKEY_LOCAL_MACHINE\SOFTWARE\MyApp
.
Преимущество OpenBaseKey
состоит в том, что оно устраняет необходимость ссылаться на Wow6432
в вашем коде.