有在win10上修改注册表的吗?

q332010372 2017-01-16 11:29:04
我在win10 家庭版 10.0.14393 64位上用这段代码修改注册表,所有步骤都能通过,但是注册表的值没变。
程序是32位的,并且已经开启了UAC(程序图标上有一个盾牌)。


HKEY hKey;
AnsiString str;
int ret;

//open key
if((ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",
0, KEY_ALL_ACCESS , &hKey)) != ERROR_SUCCESS)
{
str = "RegOpenKeyExA failed, errcode " + IntToStr(ret);
redt1->Lines->Add(str);
return;
}

//set value
if((ret = RegSetValueExA( hKey, "Shell", 0, REG_SZ,
"1", 2)) != ERROR_SUCCESS)
{
str = "RegSetValueEx failed, errcode " + IntToStr(ret);
redt1->Lines->Add(str);
RegCloseKey(hKey);
return;
}

RegCloseKey(hKey);
redt1->Lines->Add("success");


然后我又做了些测试:
1、将"Shell"改为 "Test",执行成功,并且值改变。
2、在桌面上创建一个相同功能的reg文件,双击reg文件,值改变。
3、直接在注册表编辑器里改,值改变。
4、在 win10 企业版 10.0.14393 32位上,执行成功,并且值改变。
5、提升程序Token权限,除了SE_UNSOLICITED_INPUT_NAME,其它的能提升的都提升了,但是依然执行成功,值没有改变。

求帮助!!!
...全文
153 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
q332010372 2017-01-16
  • 打赏
  • 举报
回复
问题已解决, RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", 0, KEY_ALL_ACCESS | KEY_WOW64_64KEY , &hKey)
q332010372 2017-01-16
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
搜“64 位 Windows 平台注意点之注册表重定向”
1、将"Shell"改为 "Test",执行成功,并且值改变。
赵4老师 2017-01-16
  • 打赏
  • 举报
回复
搜“64 位 Windows 平台注意点之注册表重定向”
赵4老师 2017-01-16
  • 打赏
  • 举报
回复

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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