如何使用RegistryKey.SetValue

kas*_*hif 5 c# registrykey

我正在尝试使用以下代码创建一个新的注册表项并收到此错误:

Cannot write to the registry key.
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

var rs = new RegistrySecurity();
string user = Environment.UserDomainName + "\\" + Environment.UserName;
rs.AddAccessRule(new RegistryAccessRule(user,
                                        RegistryRights.WriteKey | RegistryRights.SetValue,
                                        InheritanceFlags.None,
                                        PropagationFlags.None,
                                        AccessControlType.Allow));
RegistryKey key;
key = Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", RegistryKeyPermissionCheck.ReadSubTree, rs);
key.SetValue("kashif", 1, RegistryValueKind.DWord);
key.Close();
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 7

您需要打开新创建的密钥以进行读/写访问:

key = Registry.LocalMachine.CreateSubKey(
    @"Software\Microsoft\Windows\CurrentVersion\Policies\System",
    RegistryKeyPermissionCheck.ReadWriteSubTree, // read-write access
    rs);
Run Code Online (Sandbox Code Playgroud)

  • @kashif:您无法"通过编码"获得管理权限.如果可以的话,其他人也会这样做,并且UAC提升提示没有理由存在,因为每个人都会绕过它. (4认同)