윈도우 운영체제에서 시스템 설정을 변경하기 위해서는 관리자 권한이 필요합니다.
그에 따른 C#으로 프로그램 개발 시 관리자 권한으로 실행되도록 하는 방법 2가지를 소개하고자 합니다.
1. manifest 파일을 이용하는 방법
6) 이후 디버그 시 응용프로그램이 관리자 권한으로 실행되는 것을 확인할 수 있다.
2. ProcessStartInfo 의 Verb(동사)를 이용하는 방법
using System.Diagnostics;
using System.Security.Principal;
namespace TEST
{
static class Program
{
/// <summary>
/// 해당 응용 프로그램의 주 진입점입니다.
/// </summary>
[STAThread]
static void Main()
{
// 해당 실행이 관리자 권한이 아닌경우 관리자권한으로 재시작한다.
if (IsAdministrator() == false)
{
try
{
ProcessStartInfo info = new ProcessStartInfo()
{
UseShellExecute = true,
FileName = Application.ExecutablePath,
WorkingDirectory = Environment.CurrentDirectory,
Verb = "runas"
};
Process.Start(info);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
// 해당 실행이 관리자 권한인 경우 그대로 실행한다.
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new TestForm());
}
}
/// <summary>
/// 관리자권한 여부를 점검한다.
/// </summary>
/// <returns></returns>
public static bool IsAdministrator()
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
if (identity != null)
{
WindowsPrincipal principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
return false;
}
}
}
지금까지 응용프로그램을 관리자권한으로 실행하는 방법에 대하여 알아봤습니다.
2가지 방법 중 선택하여 사용하시면 됩니다.
감사합니다.
'C#' 카테고리의 다른 글
폴더 생성하기 (0) | 2021.10.19 |
---|---|
C# 홀수, 짝수 여부 판단하기 (0) | 2020.01.16 |
C# 진수 변환 (0) | 2020.01.16 |
C# 양력 음력 변환 (0) | 2020.01.16 |
C# DateTime의 일자관련 Method (0) | 2020.01.14 |