C# 读取注册表:ProductID 在 x86 目标应用程序中返回 null。 “任何CPU”都可以正常工作

2023-11-24

我最近搬到了一台装有 VS 2010 的 W7 64 位机器。 我的项目设置为运行Any CPU。当我将其更改为目标时x86我注意到我的一些注册表调用不再起作用。

我正在尝试阅读ProductID像这样的字段:

RegistryKey windowsNTKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion");
object productID = windowsNTKey.GetValue("ProductId");

productID总是null当在 x86 模式下运行时,当在“任何 CPU”中运行时,它可以正常工作。这里发生了什么?


某些注册表项由 WOW64 重定向。有关此主题的更多信息可在 MSDN 上找到http://msdn.microsoft.com/en-us/library/aa384232(v=vs.85).aspx

如果您确实想始终访问 x64 节点(.Net4):

  RegistryKey localMachine = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
  RegistryKey windowsNTKey = localMachine.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion");
  object productID = windowsNTKey.GetValue("ProductId");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 读取注册表:ProductID 在 x86 目标应用程序中返回 null。 “任何CPU”都可以正常工作 的相关文章

随机推荐

  • `go mod tidy` 无法下载私有 GitHub 存储库

    这是回应 not found github com me email protected invalid version git ls remote q origin in tmp gopath pkg mod cache vcs ea2b
  • 浮点误差的确定性有多大?

    我知道浮点计算存在准确性问题 并且有很多问题可以解释原因 我的问题是 如果我运行相同的计算两次 我是否可以始终依赖它产生相同的结果 哪些因素可能会影响这个 计算之间的时间 CPU当前状态 硬件不同 语言 平台 操作系统 太阳耀斑 我有一个简
  • 在 JavaScript 中,在循环内使用 wait 会阻止循环吗?

    采用以下循环 for var i 0 i lt 100 i let result await some slow async function do something with result Does await阻止循环 或者是i继续递增
  • 如何在 iOS 14 中使用 PHAuthorizationStatusLimited

    为了获取照片的创建日期 因此在显示 PHPickerViewController 之前使用 requestAuthorizationForAccessLevel PHAccessLevel level PHAccessLevelReadWr
  • Java 中的内核绕过网络[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 有谁知道如何在 Java 中绕过内核吗 任何地方你好世界或者这是火箭科学 如果您使用 S
  • 使用 CSS 将字段集居中

    我试图将包含登录 用户名 和 密码 字段的字段集居中到页面的中心 这是我所拥有的 fieldset border 1px solid rgb 255 232 57 width 400px float left 我希望字段集在窗口中居中 无论
  • 修改 emacs 向前单词/向后行为(就像 vi/vim 中一样)

    实现与 vim 中的单词来回导航相同的行为的最简单方法是什么 在vim中 当你按 w 它将光标向前移动一个单词 其中单词由一系列字母 数字和下划线组成 或者由一系列其他非空白字符组成 并用空格 空格 制表符 eol 分隔 另一方面 在 em
  • 如何在 C# 中设置 .net teradata 连接?

    我正在尝试使用 c 连接到 Teradata 我正在使用来自的示例代码这个网站 using System using System Collections Generic using System Text using Teradata C
  • 任务“:app:dexDebug”Android Studio 执行失败

    该应用程序能够在更新我的 android studio 之前执行 这是我收到的错误 Error Execution failed for task app dexDebug gt com android ide common process
  • 将 Java FX 2.0 添加到现有 Netbeans 项目

    我在 Netbeans 中有一个使用 Swing 的现有 Java 项目 我想开始对该项目中的某些组件使用 Java FX 2 0 我已经下载了最新版本的 JDK 1 7 0 03 并启用了 JavaFX 但是当我尝试添加import ja
  • 如何访问超级视图控制器?

    我有一个问题 我会尝试解释这个问题 我有一个主要的UIViewController 全屏 我有一个二级UIViewController 设定范围 我将辅助视图添加到了我的mainView使用这个 mainController view ad
  • java中数据库中的Json对象

    谁能帮我如何从数据库创建 JSON 对象 这就是JSON 输出应该看起来像 devicelist device id 01 type CAM name Livingroom id 15 type CAM name Kitchen This
  • 防止提交时默认:- Angularjs

    如果填写表单时电子邮件为空 我想防止 http post 的默认操作为 sign Up 控制器代码 scope signUp function if scope email null preventdefault html 玉 form n
  • PowerShell 复制项目方法失败 - 文件名中包含括号

    我正在尝试使用 PowerShell v 1 仅复制与模式匹配的文件 文件命名约定是 Daily Reviews 0001 0871 journal Daily Reviews 1002 9887 journal 当我运行它时 方法 Cop
  • 尝试在 WinXP 上使用 pyserial 打开串行端口 ->“访问被拒绝”

    我正在尝试使用 python 和 pyserial 通过串口将数据发送到 hplc 泵 我在 linux gentoo 的衍生版本 下测试了电缆和泵 尽管是 root 但它工作得很好 现在我必须在WinXP机器上使用代码 在尝试打开端口时我
  • Dapper.net Oracle 参数

    我正在尝试将 Dapper net 与 Oracle 一起使用 由此post我知道我们可以使用没有前缀的参数 然后 dapper 就可以同时使用sql serverand oracle 如果没有显式的 oracle 命名参数前缀 我很难让它
  • Javascript在数组中找到最接近的数字而不进行下探

    例如 我有一个数字数组 300 500 700 1000 2000 3000 我想找到最接近的数字 而不低于给定的数字 例如 搜索 2200 将返回 3000 而不是 2000 但是 如果我搜索 3200 因为数组中没有更高的值 它应该返回
  • 将php对象存储在html表单元素上并通过GET方法传递php对象?

    我可能听起来有点奇怪 但是有办法吗 例如 我有一个 PHP 对象 foo 有没有办法通过某些对象加密函数以 HTML 表单 隐藏输入 存储该对象 然后使用解密函数检索该对象 同样 我可以通过 GET 方法传递这些对象吗 就像其他地方已经指出
  • React useEffect 导致:无法对未安装的组件执行 React 状态更新

    获取数据时 我得到 无法在未安装的组件上执行 React 状态更新 该应用程序仍然有效 但反应表明我可能会导致内存泄漏 这是一个空操作 但它表明应用程序中存在内存泄漏 要修复此问题 请取消 useEffect 清理函数中的所有订阅和异步任务
  • C# 读取注册表:ProductID 在 x86 目标应用程序中返回 null。 “任何CPU”都可以正常工作

    我最近搬到了一台装有 VS 2010 的 W7 64 位机器 我的项目设置为运行Any CPU 当我将其更改为目标时x86我注意到我的一些注册表调用不再起作用 我正在尝试阅读ProductID像这样的字段 RegistryKey windo