为什么程序无法在Windows 7中写入HKEY_CURRENTUSER?

时间:2011-08-12 20:55:05

标签: windows-7 registry

使用默认访问级别在Windows 7上运行时,以下代码失败。 (这是一个使用Visual Studio 2010构建的C#应用​​程序)。我写信给HKEY_CurrentUser,这是我应该被允许创建和读取密钥的地方。

我是否需要修改程序的清单?还是有另一个神秘的伎俩?

在Windows 7下,如果您在用户帐户上调低通知设置,则代码可以正常工作。但不是出厂设置。程序员应该放弃注册表吗?

RegistryKey regsoftware = Registry.CurrentUser.OpenSubKey("Software", true);
RegistryKey regsw = regsoftware.CreateSubKey("MyCompanyName");

regsw.SetValue("User", Id);
regsw.SetValue("Pwd", encodeString(Pw));

谢谢, 格里

2 个答案:

答案 0 :(得分:1)

默认情况下,如果您想使用管理员权限运行您的应用,可以试试这个。

转到项目 - >属性 - >在右侧窗格中下拉“链接器”选项 - >清单文件 - >检查“UAC执行级别” - >选择“requireAdministrator” (我正在使用VS2008希望它在VS2010中应该是相同的)。 那就是你所要做的一切。

答案 1 :(得分:0)

您必须以管理员身份运行程序。您可以检查操作是否需要提升,并根据需要使用 WinAPI CodePack for .NET Framework提升操作。