有些操作需要管理员权限,比如写注册表,所以就有了以下代码:

if (WindowsIdentity.GetCurrent().Owner == WindowsIdentity.GetCurrent().User) // Check for Admin privileges 
            {
                ProcessStartInfo info = new ProcessStartInfo(Process.GetCurrentProcess().MainModule.FileName);
                info.UseShellExecute = true;
                info.Verb = "runas"; // invoke UAC prompt
                Process.Start(info);
                Application.Current.Shutdown();
                return;
            }

然后又问你是否同意,都是用户账户控制(UAC)惹的事,我明明是管理员身份证登录windows的,需要我再次确认,就想着能不能把UAC关闭了,发现是可以的:

  1. 按键盘的“窗口+R”,在运行窗口中输入“gpedit.msc”回车,打开“本地组策略编辑器”
  2. 在编辑器的左面的列表中,依次点开“计算机配置”、“windows设置”、“安全设置”、“本地策略”、“安全选项”
  3. 禁用“用户账户控制:以管理员批准模式运行所有管理员”
  4. 禁用“用户账户控制:用于内置管理员账户的管理员批准模式”