我有一些代码可以读取注册表并在 HKEY_LOCAL_MACHINE\Software\App\
中查找值,但是在 64 位版本的 Windows 上运行时,该值位于 HKEY_LOCAL_MACHINE\Software 下\Wow6432Node\App\
。
我应该如何最好地处理这个问题?我需要 64 位安装程序还是应该重写我的代码以检测这两个位置?
最佳答案
在 x64 机器上,这是一个如何访问注册表的 32 位 View 的示例:
using (var view32 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser,
RegistryView.Registry32))
{
using (var clsid32 = view32.OpenSubKey(@"Software\Classes\CLSID\", false))
{
// actually accessing Wow6432Node
}
}
...与...相比
using (var view64 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser,
RegistryView.Registry64))
{
using (var clsid64 = view64.OpenSubKey(@"Software\Classes\CLSID\", true))
{
....
}
}
关于c# - 读取注册表和 Wow6432Node key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2039186/