C#Winformプログラム要求管理者権限

3732 ワード

Winformプログラムを正常に実行するには管理者権限が必要な場合は、次のコードを追加します.
static class Program

    {

        /// <summary>

        ////// </summary>

        [STAThread]

        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.SetCompatibleTextRenderingDefault(false);

                Application.Run(new mainForm());

            }

            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();

            }

        }

    }