【发布时间】:2012-03-12 09:12:31
【问题描述】:
我正在编写一个用于在注册表上设置键/值的函数。我有一个问题:
我调用 RegOpenKeyEx() 并返回 ERROR_SUCCESS 和
然后我调用 RegSetValueEx 来设置键/值,但它返回 ERROR_ACCESS_DENIED
RegOpenKeyEx((HKEY)hive, branch.c_str(), NULL, ACCESS_SYSTEM_SECURITY, &hkey_result);
RegSetValueEx(hkey_result, name.c_str(), 0, REG_SZ, (BYTE*)value.c_str(),
((DWORD)wcslen(value.c_str()) + 1)* sizeof(wchar_t));
我的函数在 Windows 7 上运行,我的程序还通过使用 vs2010 IDE 嵌入清单来设置 UAC
我要设置键/值的分支: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice
我认识到,当我在 UserChoice 上选择权限菜单(使用注册表编辑器 (Regedt32.exe))时,它具有“特殊权限”字段,并且在拒绝列上选中了“设置值”项
大家好!你能帮帮我吗?
【问题讨论】:
-
你试过以管理员身份运行 vs2010 吗?您拥有计算机上的所有权利吗?
-
是的,我在我的电脑上运行权限
-
为什么要绕过用户设置?这正是密钥上的特定安全设置旨在防止的那种事情!
-
因为我的应用需要对用户设置做一些事情。你有什么解决办法让我解决吗?
-
让用户选择他们的用户设置。这就是为什么它们是用户设置。
标签: c++