C# 设置注册表值

C# 设置注册表值,c#,registry,C#,Registry,如果注册表中还没有该值,我可以使用Registry.SetValue方法吗 除了设置其内容外,此方法是否还会创建值,或者我必须确定它是否存在,然后使用SetValue 谢谢。美国,我强调: 在指定的注册表项上设置指定的名称/值对。如果指定的密钥不存在,则会创建该密钥 我将此类类用于读/写注册表: public class RegistryEditor { RegistryKey m_key; public RegistryEditor() { m_key

如果注册表中还没有该值,我可以使用Registry.SetValue方法吗

除了设置其内容外,此方法是否还会创建值,或者我必须确定它是否存在,然后使用SetValue

谢谢。

美国,我强调:

在指定的注册表项上设置指定的名称/值对。如果指定的密钥不存在,则会创建该密钥

我将此类类用于读/写注册表:

public class RegistryEditor
{
    RegistryKey m_key;
    public RegistryEditor()
    {
        m_key = Registry.CurrentUser.OpenSubKey("Software\\Company name", true);
        m_key = m_key.CreateSubKey("Product name", RegistryKeyPermissionCheck.ReadWriteSubTree);
    }
    public string GetValue(string name)
    {
        return m_key.GetValue(name, "").ToString();
    }
    public void SetValue(string name, string value)
    {
        m_key.SetValue(name, value, RegistryValueKind.String);
    }
            ~RegistryEditor()
    {
        m_key.Close();
    }
}

您能描述一下,您想问什么吗?您应该始终调用m_key.Close以确保安全。@David Heffernan,谢谢。请注意,如果您的应用程序遇到的用户对注册表具有策略限制访问权限,则Set和Get将失败。UAC也可以阻止它。