티스토리 뷰

무슨 설명이 필요하리까.


현재 PC의 권한 상태를 확인하고


관리자가 아니면 관리자권한으로 상승시키고 해당 윈폼을 실행시킨다.


만약 이렇게 처리해주지 않는다면 항상 확인 창이 뜨겠지. 관리자권한이 필요합니다~~~ 뭐 이런식으로.


using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;
using System.Security.Principal;

namespace Hysco_Widget
{
    static class Program
    {
        /// <summary>
        /// 해당 응용 프로그램의 주 진입점입니다.
        /// </summary>
        [STAThread]
        static void Main()
        {
            bool administrator = _isAdministrator(); 
            if(!administrator)
            {
            System.Diagnostics.ProcessStartInfo processInfo = new System.Diagnostics.ProcessStartInfo(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
          //  MessageBox.Show(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
            processInfo.UseShellExecute = true;
            processInfo.Verb = "runas"; 
            Process.Start(processInfo);
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());    
            } 
        }

        private static bool _isAdministrator()
        {
            WindowsIdentity identity = WindowsIdentity.GetCurrent();
            WindowsPrincipal principal = new WindowsPrincipal(identity);
            return principal.IsInRole(WindowsBuiltInRole.Administrator);
        }
    } 
}


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함