C#
C# Visual Studio 응용프로그램 관리자 권한 실행방법 2가지
miraclewing
2020. 1. 9. 23:55
윈도우 운영체제에서 시스템 설정을 변경하기 위해서는 관리자 권한이 필요합니다.
그에 따른 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;
}
}
}