关于VC在64位系统下读取注册表启动项时遇见的读取的数据与实际不一致的问题

来源:互联网 发布:js获取数字前两位 编辑:程序博客网 时间:2024/06/05 00:46

如题,问题描述略过   参考http://bbs.csdn.net/topics/390533551

但此哥们没描述清楚怎么解决的, 我之前是采用CRegKey类打开注册表的, 没有发现该哥们说的KEY_WOW64_64KEY参数.

后来找到相关函数RegOpenKeyEx,  调用 RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,
KEY_WOW64_64KEY ,&hkey);函数调用始终失败,返回ERROR_ACCESS_DENIED权限不够的问题. 

最后在另一篇贴子https://stackoverflow.com/questions/19838792/regopenkeyex-returns-error-access-denied 

中找到如下信息"You're not going to have write access to HKLM. Replace KEY_ALL_ACCESS with KEY_READ"   

最后改成 RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,
KEY_READ | KEY_WOW64_64KEY ,&hkey); 后解决问题. 



阅读全文
0 0