ICode9

精准搜索请尝试: 精确搜索
首页?>?其他分享> 文章详细

注册表在64位操作系统下

2019-09-17 14:03:15??阅读:571??来源: 互联网

标签:操作系统?32?MACHINE?64?注册表?LOCAL?SOFTWARE


使用RegOpenKeyEx打开HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run? 成功,RegQueryValueEx 失败。

又随便换了几个位置的键读取,同样的代码有的成功,有的失败。逐一确认不知权限的问题。

网上找了半天,原来是64位系统的注册表结构和32位略有不同。

比如:

32位? HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\

64位 HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\

路径被映射到wow6432node下,如果恰巧32位同路径下值相同,就可以顺利取到值。

打开注册表编辑器互相比较一下,就很容易明白了。


64位读取32位注册表路径要在RegOpenKeyEx时加上KEY_WOW64_64KEY参数。

RegOpenKeyEx(HKEY_LOCAL_MACHINE,

"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",

0,

KEY_QUERY_VALUE|KEY_WOW64_64KEY,

&hkey)


原文链接:https://blog.csdn.net/vawter_gu/article/details/50471139



标签:操作系统,32,MACHINE,64,注册表,LOCAL,SOFTWARE

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有