64位系统下如何读取32位注册表信息

X366ING 2013-07-31 09:36:51
我的系统是Win7 64位,在写C++代码读取注册表OFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall这个位置时,发现自动跳转到了Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall这个位置,经过查阅跟微软本身的设置有关,但还没有找到解决方案,怎么直接读取第一个位置里面的注册表信息,求大神帮助
...全文
867 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
davidyu720 2013-08-02
  • 打赏
  • 举报
回复
msi是安装文件的后缀名。msi API 应该是指应用程序安装卸载的管理API.
X366ING 2013-08-02
  • 打赏
  • 举报
回复
引用 3 楼 davidyu720 的回复:
32位程序在64位系统内运行时,访问注册表HKLM\Software 被自动转向到 Software\Wow6432Node。 64位程序在64位系统内运行时,访问注册表时,可以看到HKLM\Software和HKLM\Software\Wow6432Node。
正解,在打开键时,加KEY_WOW64_64KEY参数就可以了,问题解决
X366ING 2013-08-02
  • 打赏
  • 举报
回复
引用 1 楼 Exaybachay 的回复:
64 位 windows 上的 32 位进程, 访问: 注册表 系统目录 时, 会被自动转向. 如果要查询已经安装的软件, 还是实用 msi API 正解.
请问 msi API 是什么?
zhctj159 2013-07-31
  • 打赏
  • 举报
回复
楼主是怎么发现自动跳转到那里了? 个人猜测是因为注册表中的这两个位置对应的储巢内容是同一个,就如同,int a=5; int &b=a;一样,使用b和使用a是一样的,别名而已。还会纠结这个问题吗?
Exaybachay 2013-07-31
  • 打赏
  • 举报
回复
64 位 windows 上的 32 位进程, 访问: 注册表 系统目录 时, 会被自动转向. 如果要查询已经安装的软件, 还是实用 msi API 正解.
davidyu720 2013-07-31
  • 打赏
  • 举报
回复
32位程序在64位系统内运行时,访问注册表HKLM\Software 被自动转向到 Software\Wow6432Node。 64位程序在64位系统内运行时,访问注册表时,可以看到HKLM\Software和HKLM\Software\Wow6432Node。

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧