Windows中的注册表权限

Windows中的注册表权限,windows,winapi,registry,uac,Windows,Winapi,Registry,Uac,在我的小应用程序中,我试图在注册表中创建一个子项。我在Windows7中做这件事。我已经为RegCreateKeyEx函数尝试了所有可能的键组合。我记得,在WinXP中,一切都很好。然而,它总是返回“拒绝访问”结果。我发现必须对用户访问控制设置进行一些操作。这些信息解释得很混乱,我不知道该怎么办。有人能告诉我出去的路吗?提前谢谢。简单的回答是不要试图写私钥。例如,使用HKEY\U CURRENT\U USER作为根用户,而不是HKEY\U LOCAL\U MACHINE,根据评论,您正在尝试写入

在我的小应用程序中,我试图在注册表中创建一个子项。我在Windows7中做这件事。我已经为
RegCreateKeyEx
函数尝试了所有可能的键组合。我记得,在WinXP中,一切都很好。然而,它总是返回“拒绝访问”结果。我发现必须对用户访问控制设置进行一些操作。这些信息解释得很混乱,我不知道该怎么办。有人能告诉我出去的路吗?提前谢谢。

简单的回答是不要试图写私钥。例如,使用
HKEY\U CURRENT\U USER
作为根用户,而不是
HKEY\U LOCAL\U MACHINE

,根据评论,您正在尝试写入HKCR。为了做到这一点,你需要管理员权限

  • 在XP上,您的用户是管理员,因此具有管理员权限。代码成功了
  • 在Vista和更高版本上,UAC处于活动状态时,您的用户(即使是管理员用户)使用标准用户令牌运行。代码失败,访问被拒绝

  • 如果确实需要写入此密钥,则需要使用管理员权限运行。这需要一份requireAdministrator清单。

    你能发布我们可以编译和检查的最少代码吗?从“以管理员身份”运行你的应用开始,看看是UAC阻止了你做一些受限的事情。然后用相关信息更新你的问题就好了。你想打开哪把钥匙?你要求什么权利?写访问权限?@David Heffernan我正在为香港大学的课程做这项工作_ROOT@RomanR. 好建议。稍后再写。如果您需要的钥匙在HKCR,那么写信给HKCU没有帮助