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

 1         /// <summary>
 2         /// 判断程序是否是以管理员身份运行。
 3         /// </summary>
 4         public static bool IsRunAsAdmin()
 5         {
 6             WindowsIdentity id = WindowsIdentity.GetCurrent();
 7             WindowsPrincipal principal = new WindowsPrincipal(id);
 8             return principal.IsInRole(WindowsBuiltInRole.Administrator);
 9         }
10 //不是以管理员身份开启,则自动以管理员身份重新打开程序
11 //写在构造里比较省资源
12 public LoginFrm()
13         {
14             try
15             {
16                 //判断是否以管理员身份运行,不是则提示
17                 if (!PublicUtil.IsRunAsAdmin())
18                 {
19                     ProcessStartInfo psi = new ProcessStartInfo();
20                     psi.WorkingDirectory = Environment.CurrentDirectory;
21                     psi.FileName = Application.ExecutablePath;
22                     psi.UseShellExecute = true;
23                     psi.Verb = "runas";
24                     Process p = new Process();
25                     p.StartInfo = psi;
26                     p.Start();
27                     Process.GetCurrentProcess().Kill();
28                 }
29             }
30             catch (Exception ex)
31             {
32                 ExceptionScheduler.ExceptionScheduler exceptionScheduler = new ExceptionScheduler.ExceptionScheduler(ex);
33                 ShowMessageOnUI.ShowErrorMessage("程序无法获取Windows管理员身份运行,\n请手动使用Windows管理员身份运行");
34             }
35             InitializeComponent();
36         }

 

转载于:https://www.cnblogs.com/lyghost/archive/2012/07/02/2573696.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值