■ 정리
윈도우 응용 프로그램 개발 시 클릭원스를 사용하여 배포하거나 내부적으로 구현한 기능이 관리자 권한으로
프로그램이 실행되어야 하는경우 프로그램 시작점에 아래와 같이 코드를 추가하면 관리자 권한으로 실행됨.
- 네임스페이스 참조
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Diagnostics;
using System.Security.Principal;
- 프로그램 시작 시 IsAdministrator 호출하여 관리자 권한이 아닌 경우 관리자 권한으로 실행.
[STAThread]
static void Main()
{
/* Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());*/
if (IsAdministrator() == false)
{
try
{
ProcessStartInfo procInfo = new ProcessStartInfo();
procInfo.UseShellExecute = true;
procInfo.FileName = Application.ExecutablePath;
procInfo.WorkingDirectory = Environment.CurrentDirectory;
procInfo.Verb = "runas";
Process.Start(procInfo);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
public static bool IsAdministrator()
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
if (null != identity)
{
WindowsPrincipal principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
return false;
}
- 참조소스 코드 주소
'C# > .Net - Windows Form' 카테고리의 다른 글
01. Connection String 암호화 ( Encryption Decryption ) (0) | 2020.03.22 |
---|