방법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;
}
'유용한 정보' 카테고리의 다른 글
[MFC] 윈도우 레지스트리의 키 또는 데이터를 읽고 쓰고 삭제하기 (0) | 2025.04.19 |
---|---|
[C#] 기간 선택하기 (0) | 2025.04.19 |
[C#] 레지스트리 읽기/쓰기 (0) | 2025.04.17 |
[C#] Get MAC address (0) | 2025.04.16 |
[C#] Import Excel File To DataGridView (0) | 2025.04.16 |