Sollyu

  • 捐赠
  • 关于
  1. 首页
  2. 原创文章
  3. 正文

C# 检查程序是否已管理员身份运行

2014年12月16日 4127点热度 0人点赞 0条评论

代码

    /// <summary>
    /// 判断程序是否是以管理员身份运行。
    /// </summary>
    public static bool IsRunAsAdmin()
    {
        System.Security.Principal.WindowsIdentity id = System.Security.Principal.WindowsIdentity.GetCurrent();
        System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(id);
        return principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);
    }


    //不是以管理员身份开启,则自动以管理员身份重新打开程序
    //写在构造里比较省资源
        public LoginFrm()
     {
         try
         {
             //判断是否以管理员身份运行,不是则提示
             if (!PublicUtil.IsRunAsAdmin())
             {
                    System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
                    psi.WorkingDirectory = Environment.CurrentDirectory;
                    psi.FileName = Application.ExecutablePath;
                    psi.UseShellExecute = true;
                    psi.Verb = "runas";
                    System.Diagnostics.Process p = new System.Diagnostics.Process();
                    p.StartInfo = psi;
                    p.Start();
                    System.Diagnostics.Process.GetCurrentProcess().Kill();
             }
         }
         catch (Exception ex)
         {
             ExceptionScheduler.ExceptionScheduler exceptionScheduler = new ExceptionScheduler.ExceptionScheduler(ex);
             ShowMessageOnUI.ShowErrorMessage("程序无法获取Windows管理员身份运行,\n请手动使用Windows管理员身份运行");
         }
         InitializeComponent();
     }
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: C++ 管理员
最后更新:2014年12月16日

sollyu

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2021 sollyu.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

苏ICP备15007531号