2 listerci ListerCi 于 2016.09.14 08:41 提问

关于C++写入注册表的问题

今天写了个程序,就是修改注册表让程序开机自启,但是在写入的时候遇到了点问题,来求助一下。
代码段
运行后显示可以读注册表,但是没有出现写入成功的日志。
控制台
请问这是设么原因呢?跟win10系统有关系吗,或者涉及到WOW64?
求大神指教一下应该怎么改。。。

2个回答

iamhycljc
iamhycljc   2016.09.14 09:02
已采纳

RegOpenKeyEx(hKey, szDs, 0, KEY_READ|KEY_WOW64_64KEY, &hRetKey);
RegSetValueEx(hRetKey, szKey, NULL, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD));

采用Ex函数,KEY_WOW64_64KEY这个是关键。

ListerCi
ListerCi sz_path_c 就是执行文件的路径,上面的代码有贴出来。。。
大约一年之前 回复
ListerCi
ListerCi RegSetValueEx(hkey, L"shutdownDemo", NULL, REG_DWORD, (BYTE*)sz_path_c, strlen(sz_path_c));
大约一年之前 回复
ListerCi
ListerCi 用Ex函数,加入WOW64之后是可以读取注册表的。但还是不能写入,RegSetValueEx里怎么写为好?我是这么写的:
大约一年之前 回复
testcs_dn
testcs_dn   Rxr 2016.09.14 08:56

什么系统?
以管理员身份运行试试!
或者
参考一下这个:http://blog.csdn.net/denghubu/article/details/5765921

testcs_dn
testcs_dn 把详细错误信息打印出来看看
大约一年之前 回复
ListerCi
ListerCi win10,我之前在别人的win7上尝试了一下,是可以写入的,在我的win10上就不行
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片