禁用UAC并通知用户

时间:2019-01-07 11:00:19

标签: c#

我已经看过这样的线程: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!");
        }

1 个答案:

答案 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);