我正在尝试使用以下代码创建一个新的注册表项,并得到此错误:
Cannot write to the registry key.我哪里错了?
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();发布于 2013-01-26 06:15:20
您需要打开新创建的key进行读写访问:
key = Registry.LocalMachine.CreateSubKey(
@"Software\Microsoft\Windows\CurrentVersion\Policies\System",
RegistryKeyPermissionCheck.ReadWriteSubTree, // read-write access
rs);发布于 2017-02-23 23:12:20
您不需要rs部件,除非您正在尝试为要创建的密钥分配特定权限。
您需要:
RegistryKey变量。添加一个true布尔值,以使用该变量将其标记为writeable.RegistryKey变量设置值。示例:
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);
key = key.CreateSubKey("MyNewKey");
key.SetValue("kashif", 1, RegistryValueKind.DWord);如果您只想编辑一个现有的密钥,就像System一样,您不能使用CreateSubKey,因为该密钥已经存在。这仅用于创建新密钥。您可以使用OpenSubKey。
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);
key.SetValue("kashif", 1, RegistryValueKind.DWord);https://stackoverflow.com/questions/14531142
复制相似问题