[C#] 관리자 권한으로 실행하게 만들기
방법1) app.manifest 파일 설정
- 프로젝트 속성 -> 보안 -> ClickOnce 보안 설정 사용 체크

- 프로젝트 속성 -> 보안 -> ClickOnce 보안 설정 사용 해지

- app.manifest 파일을 열어보면 아래와 같이 되어 있다.

- <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 부분을
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 로 수정
방법2) ProcessStart 이용
using System.Diagnostics;
using System.Security.Principal;
static void Main()
{
if (IsAdmin())
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
else
{
ProcessStartInfo pi = new ProcessStartInfo();
pi.UseShellExecute = true;
pi.FileName = Application.ExecutablePath;
pi.WorkingDirectory = Environment.CurrentDirectory;
pi.Verb = "runas";
Process.Start(pi);
}
}
public static bool IsAdmin()
{
WindowsIdentity id = WindowsIdentity.GetCurrent();
if (id != null)
{
WindowsPrincipal principal = new WindowsPrincipal(id);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
return false;
}