读书人

C#判断程序是不是以管理员身份运行否

发布时间: 2012-09-15 19:09:28 作者: rapoo

C#判断程序是否以管理员身份运行,否则以管理员身份重新打开

        /// <summary>        /// 判断程序是否是以管理员身份运行。        /// </summary>        public static bool IsRunAsAdmin()        {            WindowsIdentity id = WindowsIdentity.GetCurrent();            WindowsPrincipal principal = new WindowsPrincipal(id);            return principal.IsInRole(WindowsBuiltInRole.Administrator);        }//不是以管理员身份开启,则自动以管理员身份重新打开程序//写在构造里比较省资源public LoginFrm()        {            try            {                //判断是否以管理员身份运行,不是则提示                if (!PublicUtil.IsRunAsAdmin())                {                    ProcessStartInfo psi = new ProcessStartInfo();                    psi.WorkingDirectory = Environment.CurrentDirectory;                    psi.FileName = Application.ExecutablePath;                    psi.UseShellExecute = true;                    psi.Verb = "runas";                    Process p = new Process();                    p.StartInfo = psi;                    p.Start();                    Process.GetCurrentProcess().Kill();                }            }            catch (Exception ex)            {                ExceptionScheduler.ExceptionScheduler exceptionScheduler = new ExceptionScheduler.ExceptionScheduler(ex);                ShowMessageOnUI.ShowErrorMessage("程序无法获取Windows管理员身份运行,\n请手动使用Windows管理员身份运行");            }            InitializeComponent();        }

?

读书人网 >C#

热点推荐