以管理员身份运行程序

摘自:http://bbs.csdn.net/topics/380178685

首先检测是否需要“以管理员身份运行”,如果需要程序重启并自动“以管理员身份运行”,用到如下两个方法:

        public static bool IsNeedRunAsAdmin()
        {
            //return true;
            //操作系统版本号6及以上,代表Vista/Win7以后的操作系统。
            if (Environment.OSVersion.Version.Major >= 6)
            {
                WindowsIdentity identity = WindowsIdentity.GetCurrent();
                WindowsPrincipal principal = new WindowsPrincipal(identity);

                //如果已使用管理员身份运行
                if (principal.IsInRole(WindowsBuiltInRole.Administrator))
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
            return false;
        }

        private void RunasAdmin()
        {

            ProcessStartInfo start = new ProcessStartInfo();
            start.WorkingDirectory = Application.StartupPath;
            start.FileName = System.IO.Path.GetFileName(Application.ExecutablePath); ;   // 需要以管理员权限启动的文件
            start.Verb = "runas";   // 这个动词将弹出 UAC 提示

            try
            {
                Process p = Process.Start(start);
                this.Close();
            }
            catch 
            {
                this.Close();
            }

        }
原文地址:https://www.cnblogs.com/haight/p/3292717.html