首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为同一注册表项获取不同值的原因是什么?

为同一注册表项获取不同值的原因是什么?
EN

Stack Overflow用户
提问于 2022-01-19 14:30:34
回答 1查看 131关注 0票数 0

我想读取注册表项\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName.

当我检查注册表编辑器中的键时,我得到的值是"Window 10 Pro“。然而,当我在我的c#应用程序中读取相同的键时,结果是"Window 10 Enterprise“

该操作系统是Windows 10 64位版本,应用程序针对的是.NET框架4.6.1,在visual中构建的平台是“任意CPU”。

来自我的应用程序的代码片段:

代码语言:javascript
运行
复制
registryKey = Registry.LocalMachine.OpenSubKey(
    @"SOFTWARE\Microsoft\Windows NT\CurrentVersion", false);
if (registryKey != null)
{
    nameString = registryKey.GetValue("ProductName", "-Unknown-").ToString();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-19 14:36:26

我首先要检查一下,以确保这两件事在同一台计算机上运行。

否则,有一件事可以做到这一点。HKLM\Software有一个名为WOW6432Node的条目。这里的“哇”是"Windows on Windows“。当旧的32位进程访问注册表以将查询重定向到该部分时,就会使用它,类似于Program Files vs Program Files (x86)文件夹。因此,一个32位进程访问这里:

代码语言:javascript
运行
复制
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName

将改为从这里读到:

代码语言:javascript
运行
复制
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\ProductName

但是,同样地,对于这个特殊的关键,这两个项目有着不同的价值,这将是非常奇怪的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70772437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档