欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中用管理员身份运行程序代码实例

程序员文章站 2023-12-10 19:13:28
using system; using system.collections.generic; using system.linq; using system...
using system;
using system.collections.generic;
using system.linq;
using system.windows.forms;

namespace mywebbrowser
{

  static class program

  {

    /// <summary>

    /// 应用程序的主入口点。

    /// </summary>

    [stathread]

    static void main()

    {

      //获得当前登录的windows用户标示 

      system.security.principal.windowsidentity identity = system.security.principal.windowsidentity.getcurrent();

      system.security.principal.windowsprincipal principal = new system.security.principal.windowsprincipal(identity);

      //判断当前登录用户是否为管理员 

      if (principal.isinrole(system.security.principal.windowsbuiltinrole.administrator))

      {

        //如果是管理员,则直接运行 

        application.enablevisualstyles();

        application.setcompatibletextrenderingdefault(false);

        application.run(new form1());

      }

      else

      {

        //创建启动对象 

        system.diagnostics.processstartinfo startinfo = new system.diagnostics.processstartinfo();

        //设置运行文件 

        startinfo.filename = system.windows.forms.application.executablepath;

        //设置启动动作,确保以管理员身份运行 

        startinfo.verb = "runas";

        //如果不是管理员,则启动uac 

        system.diagnostics.process.start(startinfo);

        //退出 

        system.windows.forms.application.exit();

      }

    }

  }

}