c# - 如何使用 RegistryKey.SetValue

标签 c# registrykey

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

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();

最佳答案

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

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

关于c# - 如何使用 RegistryKey.SetValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14531142/

相关文章:

windows - 如何防止使用 LsaRetrievePrivateData 从远程机器的任何人轻松读取使用 LsaStorePrivateData 存储的数据?

windows - 使用 PowerShell 从注册表项中检索信息

windows - 如何在 powershell 中更改另一个用户的特定注册表设置

active-directory - 如何从注册表查找 Active Directory 容器

c# - 如何在同一 View 中使用两个从两个不同模型创建的 ActionResult?

c# - 获取具有由鼠标位置定义的坐标的线

c# - 在 C# 中将 base-27(或 base-X)转换为 base-10?

c# - C# 中的结构编码(marshal)

c# - 使用 http.get 以 Angular 与 asp.net Web api 下载 .xlsx 文件时出错

windows - 读取注册表项导致 "The file type being saved or retrieved has been blocked"错误