码迷,mamicode.com
首页 > 其他好文 > 详细

c#程序以管理员身份运行(三种办法)

时间:2014-08-09 00:17:56      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:vs2010

三种办法:

一、设置程序本身的属性:勾选“以管理员身份运行此程序”,必要时设置“更改所有用户设置-以管理员身份运行此程序”,当然这种办法是被动的,也不是最实际的办法;

bubuko.com,布布扣

bubuko.com,布布扣

二、代码法:

static void Main(string[] Args)
        {
            /**
             * 当前用户是管理员的时候,直接启动应用程序
             * 如果不是管理员,则使用启动对象启动程序,以确保使用管理员身份运行
             */
            //获得当前登录的Windows用户标示
            System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
            //创建Windows用户主题
            Application.EnableVisualStyles();
 
            System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
            //判断当前登录用户是否为管理员
            if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
            {
                //如果是管理员,则直接运行
 
                Application.EnableVisualStyles();
                Application.Run(new Form1());
            }
            else
            {
                //创建启动对象
                System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
                //设置运行文件
                startInfo.FileName = System.Windows.Forms.Application.ExecutablePath;
                //设置启动参数
                //startInfo.Arguments = String.Join(" ", Args);
                //设置启动动作,确保以管理员身份运行
                startInfo.Verb = "runas";
                try
                {
                    //如果不是管理员,则启动UAC
                    System.Diagnostics.Process.Start(startInfo);
                    //退出
                    System.Windows.Forms.Application.Exit();
                }
                catch
                { 
                }
            }
        }

三、配置法:

  vs2010中,项目右键属性--安全性---启用ClickOnce安全设置
 
  然后程序目录下会生成一个app.manifest文件
 
  <requestedExecutionLevel level="asInvoker" uiAccess="false" />
  改为
  <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
   
  然后在"安全性"中再勾去"启用ClickOnce安全设置"后,重新编译即可。

bubuko.com,布布扣

bubuko.com,布布扣

c#程序以管理员身份运行(三种办法),布布扣,bubuko.com

c#程序以管理员身份运行(三种办法)

标签:vs2010

原文地址:http://blog.csdn.net/lisenyang/article/details/38445605

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!