不允许请求的注册表访问例外

时间:2018-10-13 13:34:22

标签: c# .net registry

我正在尝试使用SetValue来更改HKEY_LOCAL_MACHINE中的密钥,但是我遇到了未经授权的“不允许请求的注册表访问”异常,尽管我将清单更改为以管理员身份运行应用程序, 我也尝试了baseKey.OpenSubKey(_path,true),但没有用,

我做错什么了吗?

 public void RevertToInitial(List<string> changed)
    {
        using (var sub = Registry.LocalMachine.OpenSubKey(_path, true))
        {
            foreach (var key in changed)
            {
                try
                {
                    var initial = _initalValues[key];
                    //Registry.SetValue($@"HKEY_LOCAL_MACHINE\{_path}", key, initial);
                    sub.SetValue(key, initial, RegistryValueKind.Binary);
                    //var change = baseKey.GetValue(key);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }

        }
    }

更新:应用程序是x64,当我更改为x86时,我没有收到异常,但实际上并没有更改密钥。 更新:尝试改用pInvoke,同样的问题,访问被拒绝。

0 个答案:

没有答案