using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Threading; using demo.UI; using demo.DbModule; namespace demo { static class Program { // private static Thread startThread = null; /// /// 应用程序的主入口点。 /// static public bool bRestart = false; [STAThread] static void Main() { int a = Getdd(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); /** * 当前用户是管理员的时候,直接启动应用程序 * 如果不是管理员,则使用启动对象启动程序,以确保使用管理员身份运行 */ //获得当前登录的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)) { //如果是管理员,则直接运行 bool bCreateNewFormMain; Mutex m = new Mutex(true, Application.ProductName, out bCreateNewFormMain); if (bCreateNewFormMain) { Application.Run(new FormMain()); m.ReleaseMutex(); m.Close(); if (bRestart) Application.Restart(); } else { MessageBox.Show("应用程序已经在运行中..."); Environment.Exit(1); } } else { //创建启动对象 System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.UseShellExecute = true; startInfo.WorkingDirectory = Environment.CurrentDirectory; startInfo.FileName = Application.ExecutablePath; //设置启动动作,确保以管理员身份运行 startInfo.Verb = "runas"; try { System.Diagnostics.Process.Start(startInfo); } catch { return; } //退出 Application.Exit(); } } static int Getdd() { int i = 1; while(true) { if(i==5) { break; //return i; } i++; } return i; } } }