无法从32位应用程序返回密钥的WOW6432版本
本文关键字:密钥 WOW6432 版本 返回 应用程序 32位 | 更新日期: 2023-09-27 18:24:28
我正在尝试从应用程序中读取注册表项。它是一个32位进程,在64位系统(Win7 64位)上运行。这是我的代码:
string value64 = string.Empty;
RegistryKey localKeyRegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
localKey = localKey.OpenSubKey(@"SOFTWARE'Microsoft'Windows NT'CurrentVersion");
if (localKey != null)
{
value64 = localKey.GetValue("RegisteredOrganization").ToString();
MessageBox.Show(value64, "value64");
}
在我的系统中,此密钥(SOFTWARE''Microsoft''Windows NT''CurrentVersion)下的值为空,而此密钥(OFTWARE''WOW6432Node''Microsoft''Windows NT''CurrentVersion)下的数值为"Microsoft"。但是消息框中的值64为空!它不应该是"微软"吗?
您正在指定RegistryView.Registry64
,因此它将从SOFTWARE'Microsoft'Windows NT'CurrentVersion
中检索值
如果指定RegistryView.Registry32
,它将从SOFTWARE'WOW6432Node'Microsoft'Windows NT'CurrentVersion
中检索(即,在64位系统上;在32位系统上,WOW6432Node不存在,因此它将只使用普通配置单元)。
我认为,如果您指定RegistryView.Default
,它将根据调用进程的比特度来选择配置单元。