首页 > 代码库 > C#默认以管理员身份运行程序

C#默认以管理员身份运行程序

由于WIN8的权限限制,很多程序安装后没有写入权限,导致程序无法正常运行,以下是让程序以管理员身份运行,解决此问题

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";                //如果不是管理员,则启动UAC                System.Diagnostics.Process.Start(startInfo);                //退出                System.Windows.Forms.Application.Exit();            }        } 

打开程序集里的Program.cs文件,并将其中Main方法中的代码替换为以上代码即可实现程序默认以管理员身份运行。

C#默认以管理员身份运行程序