윈도우 프로그램을 사용하다보면 관리자권한으로 실행을 해야할 상황이 있습니다.
이때 구현해야할 부분을 정리해보았어요.
//외부 프로그램 실행하기 위해 추가된 것
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());
}
}
VSCODE 한줄복사 단축키 (0) | 2021.10.14 |
---|---|
VS Code 주석 단축키 Ctrl+K+C (0) | 2021.09.14 |
C# OpenFileDialog 사용법 (0) | 2021.07.30 |
VisualStudio DPI Restart 문제 (0) | 2021.07.30 |
visual studio 2010 beta 2 professional version download (0) | 2009.11.18 |