2012-05-18 75 views
-2

在我的小应用程序中,我试图在注册表中创建一个子键。我在Windows 7中执行此操作。我尝试了所有可能的RegCreateKeyEx函数的密钥组合。我记得,在Win XP中一切都很好。不过它总是返回我“访问被拒绝”的结果。我发现一定要用用户访问控制设置。这些信息是以混乱的方式解释的,我没有得到应该做的事情。有人能告诉我出路吗?提前致谢。Windows中的注册表权限

+0

你能发布我们可以编译和检查的最少量的代码吗? – dirkgently

+0

开始运行您的应用程序“以管理员身份”来查看是否UAC阻止您执行受限制的操作。然后用相关信息更新你的问题会很好。 –

+1

你试图打开哪个键?你要求什么权利?写入权限? –

回答

2

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

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

如果您确实需要写入此密钥,那么您将需要以管理员权限运行。这将需要一个requireAdministrator清单。

1

简短的回答是不要尝试写入特权密钥。例如,使用HKEY_CURRENT_USER作为根,而不是HKEY_LOCAL_MACHINE

+0

如果你需要的钥匙在HKCR,写给HKCU并没有什么帮助 –