我正在尝试使用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,同样的问题,访问被拒绝。