代码之家  ›  专栏  ›  技术社区  ›  Angel.King.47

C#在注册表本地计算机中创建值

  •  22
  • Angel.King.47  · 技术社区  · 16 年前

    以下代码对我无效:

    public bool createRegistry()
    {
        if (!registryExists())
        {
            Microsoft.Win32.Registry.LocalMachine.CreateSubKey("Software\\xelo\\");
    
            Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\xelo").SetValue("hostname", (string)hostname, Microsoft.Win32.RegistryValueKind.String);
    
    
            return true;
        }
        else
        {
            return updateRegistry();
        }
    }
    

    例外情况:

    System.UnauthorizedAccessException |“无法写入注册表 “键”

    5 回复  |  直到 8 年前
        1
  •  27
  •   Kyle Alons    16 年前

    非管理员和未提升的管理员用户无权修改HKEY\ U LOCAL\ U计算机密钥。以管理员身份运行程序。

        2
  •  11
  •   Dinesh Haraveer    12 年前

    下面的代码在注册表中创建项。

    Microsoft.Win32.RegistryKey key;
    key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("Software\\Wow6432Node\\Names");
    key.SetValue("Name", "Isabella");
    key.Close();
    
        3
  •  10
  •   dandan78 Tom Cool    15 年前

    Registry.LocalMachine.CreateSubKey(@"SOFTWARE\YourCompanyName\SomeNewKey");
    

    而不是

    Registry.LocalMachine.CreateSubKey("SomeNewKey");
    
        4
  •  0
  •   Murph    16 年前

    你已经得到答案了-我猜你运行的是Vista或windows7(或server2008),运行该应用的进程/用户没有修改注册表的权限。

    所以这不是一个代码问题,而是一个系统管理问题。构建应用程序并以管理员身份运行,看看是否有效。

        5
  •  -1
  •   StillLearningCSharp    12 年前

    将预发射检查位设置为true。。。

    Microsoft.Win32.Registry.LocalMachine.CreateSubKey("Software\\xelo\\", true);
    

    :)