我已经看过这样的线程:Disabling UAC programmatically但是它们有点旧,看来我做不到。 我正在尝试创建Windows工具来帮助用户执行证书处理(例如启用或禁用UAC)。到目前为止,这是我的代码,即使管理员正确也不会降低或提高UAC值。现在,我不使用管理员帐户(Windows 10),但可以访问本地管理员证书。
try
{
RegistryKey uac = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", true);
if (uac == null)
{
uac = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");
}
uac.SetValue("EnableLUA", 0);
uac.Close();
}
catch (Exception)
{
MessageBox.Show("Error!");
}
答案 0 :(得分:1)
您在此处使用Registry.CurrentUser,请改用LocalMachine。因此,代码将如下所示:
RegistryKey uac = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", true);
if (uac == null)
{
uac = Registry.LocalMachine.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");
}
uac.SetValue("EnableLUA", 0);