hoony's web study

728x90
반응형

윈도우 프로그램을 사용하다보면 관리자권한으로 실행을 해야할 상황이 있습니다.
이때 구현해야할 부분을 정리해보았어요.

//외부 프로그램 실행하기 위해 추가된  것
using System.Diagnostics;
using System.Reflection;
using System.Security.Principal;

먼저 3개의 library를 선언해야합니다.

그리고 현재 프로그램이 관리자로 실행중인지 아닌지를 체크를 해야합니다.
이때 사용한 함수입니다.

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

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

            return false;
        }

현재 사용자의 신원을 가지고 관리자인지 아닌지를 리턴해주는 간단한 함수입니다.

그리고 이것을 이용해서 외부 프로그램을 관리자로 실행을 해줄수 있습니다.

if (IsAdministrator() == false) // 관리자 권한으로 실행되지 않는 경우 
                {
                    try
                    {
                        ProcessStartInfo procInfo = new ProcessStartInfo();
                        procInfo.UseShellExecute = true;
                        procInfo.FileName = path_RoomServer;
                        procInfo.WorkingDirectory = Environment.CurrentDirectory;
                        procInfo.Verb = "runas";
                        Process.Start(procInfo); 

                        //Process.Start(path_RoomServer);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message.ToString());
                    }
                    
                }

 

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading