본문 바로가기

C#/.Net - Windows Form

00 C# 윈도우 폼 프로그램 관리자 권한으로 실행하기

■ 정리 

윈도우 응용 프로그램 개발 시 클릭원스를 사용하여 배포하거나 내부적으로 구현한 기능이 관리자 권한으로 

프로그램이 실행되어야 하는경우 프로그램 시작점에 아래와 같이 코드를 추가하면 관리자 권한으로 실행됨.

 

 - 네임스페이스 참조 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Diagnostics;
using System.Security.Principal;

- 프로그램 시작 시 IsAdministrator 호출하여 관리자 권한이 아닌 경우 관리자 권한으로 실행.

	[STAThread]
        static void Main()
        {
            /* Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
             Application.Run(new Form1());*/
            if (IsAdministrator() == false)
            {
                try
                {
                    ProcessStartInfo procInfo = new ProcessStartInfo();
                    procInfo.UseShellExecute = true;
                    procInfo.FileName = Application.ExecutablePath;
                    procInfo.WorkingDirectory = Environment.CurrentDirectory;
                    procInfo.Verb = "runas";
                    Process.Start(procInfo);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }

                return;
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

        public static bool IsAdministrator()
        {
            WindowsIdentity identity = WindowsIdentity.GetCurrent();

            if (null != identity)
            {
                WindowsPrincipal principal = new WindowsPrincipal(identity);
                return principal.IsInRole(WindowsBuiltInRole.Administrator);
            }

            return false;
        }

- 참조소스 코드 주소 

 

[C#] 관리자 권한으로 실행하기

해당 작업은 Program.cs 에서 작업을 합니다.[…

trudy.kr

 

'C# > .Net - Windows Form' 카테고리의 다른 글

01. Connection String 암호화 ( Encryption Decryption )  (0) 2020.03.22