我需要在没有管理员模式的情况下在注册表中写入和读取 key 。首先我想知道这是否可行?
请找到下面的代码(它工作正常,当 Visual Studio 在管理员模式下打开时)
写
RegistryKey key = Registry.LocalMachine.OpenSubKey("Software", true);
key.CreateSubKey("AppName");
key = key.OpenSubKey("AppName", true);
key.CreateSubKey("AppVersion");
key = key.OpenSubKey("AppVersion", true);
key.SetValue("myval", "677");
key.Close();
阅读
RegistryKey key = Registry.LocalMachine.OpenSubKey("Software", true);
key.CreateSubKey("AppName");
key = key.OpenSubKey("AppName", true);
//if it does exist, retrieve the stored values
if (key != null)
{
string s = (string)key.GetValue("myval");
Console.Read();
key.Close();
}
请任何人提出一种方法来做到这一点。 (我也尝试添加下面的行)
错误:
ClickOnce does not support the request execution level 'requireAdministrator'.
最佳答案
这里有一个答案 how to write in registry without admin
读取是通过使用 RegistryKeyPermissionCheck.ReadSubTree 选项完成的
RegistryKey baseRegistryKey = RegistryKey.OpenBaseKey(baseKey, RegistryView.Registry64);
RegistryKey subRegistryKey = baseRegistryKey.OpenSubKey(subKey, RegistryKeyPermissionCheck.ReadSubTree);
if (subRegistryKey != null)
{
object value64 = subRegistryKey.GetValue(value);
if (value64 != null)
{
baseRegistryKey.Close();
subRegistryKey.Close();
return value64;
}
subRegistryKey.Close();
}
baseRegistryKey.Close();
然后对 RegistryView.Registry32 做同样的事情
关于c# - 如何在没有管理员权限的情况下读写注册表_C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50837139/