访问域网络中的注册表项时出现UnauthorizedAccessException

本文关键字:UnauthorizedAccessException 注册表 网络 访问 | 更新日期: 2023-09-27 18:21:06

我想为注册表项设置值。当我尝试使用SetValue方法时,它抛出UnauthorizedAccessException异常,即:

试图执行未经授权的操作。

这是我的代码:

var key = Microsoft.Win32.Registry.CurrentUser
            .OpenSubKey("SOFTWARE")
            .OpenSubKey("Microsoft")
            .OpenSubKey("Windows")
            .OpenSubKey("CurrentVersion")
            .OpenSubKey("Run", true);
if (key.GetValue("MyKey") == null)
{
    key.SetValue("MyKey", localPath, Microsoft.Win32.RegistryValueKind.String);
}

访问域网络中的注册表项时出现UnauthorizedAccessException

为什么不尝试使用Registry类??

下面是我的实时服务器的工作代码。

        RegistryKey registry = Registry.LocalMachine.OpenSubKey(@"software'newclient", true);            
        if (registry == null)
        {
            Registry.LocalMachine.CreateSubKey(@"software'newclient");
            registry = Registry.LocalMachine.OpenSubKey(@"software'newclient", true);
        }
        if (registry.GetValue("CreatedTime")==null)
        {
            registry.SetValue("CreatedTime", "1/1/1900 00:00 PM");
        }
        if (registry.GetValue("CurrentVersion") == null)
        {
            registry.SetValue("CurrentVersion", "0.0.0.0");
        }
        if (Convert.ToDateTime(registry.GetValue("CreatedTime").ToString()) != Convert.ToDateTime(arr[1]))
        {
            /*
             * other code snippet
             *
             */
            registry.SetValue("CurrentVersion",arr[0]);
            registry.SetValue("CreatedTime", arr[1]);
            return true;
        }
        registry.Close();
        return false;

OpenSubKey可以采用两个参数,其中一个是子密钥路径,第二个可以采用可写(bool)参数

using(RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM'CurrentControlSet'Control'Session Manager'Environmen", true))
     {
         key.SetValue(saveValue, RegSelect);
     }
相关文章:
  • 没有找到相关文章