VC++读取注册表失败之64位惹得祸
2016-01-06 19:26
239 查看
使用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)
相关文章推荐
- C++小题(十一)
- C++ Primer Plus (第六版) 编程练习4.13
- libc++abi.dylib: terminate_handler unexpectedly threw an exception错误
- 快速傅里叶变换和逆变换的C++实现
- C++ primer plus读书笔记——第17章 输入、输出和文件
- C++ primer plus读书笔记——第16章 string类和标准模板库
- C++ primer plus读书笔记——第15章 友元、异常和其他
- C++ primer plus读书笔记——第14章 C++中的代码重用
- C++ primer plus读书笔记——第13章 类继承
- c++例子分析-内存内容覆盖
- C++ primer plus读书笔记——第12章 类和动态内存分配
- C++ primer plus读书笔记——第11章 使用类
- C++ primer plus读书笔记——第10章 对象和类
- C++ primer plus读书笔记——第9章 内存模型和名称空间
- C++ primer plus读书笔记——第8章 函数探幽
- C++ primer plus读书笔记——第7章 函数——C++的编程模块
- C++ primer plus读书笔记——第6章 分支语句和逻辑运算符
- C++ primer plus读书笔记——第5章 循环和关系表达式
- C++ primer plus读书笔记——第4章 复合类型
- C++ primer plus读书笔记——第3章 处理数据