NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • NGM 6
  • 매뉴얼

    NGM 6

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    디자이너 엔지엠 RPA 프레임워크를 관리자 권한으로 실행하는 방법. (How to run the NGM RPA framework wit…

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 내 프로그램에 엔지엠 RPA 기능을 탑재하는 경우 권한에 따라 일부 동작이 실행되지 않을 수 있습니다. 윈도우즈에서 실행되는 프로그램은 윈도우즈로부터 각각의 권한을 할당 받게 됩니다. 이 때 A 프로그램이 관리자 권한으로 실행중이고, 엔지엠 RPA 프레임워크로 만든 프로그램이 일반 권한이라면 마우스나 키보드 입력이 권한 불충분으로 수행되지 않습니다. 이외에도 여러가지 윈도우즈 API들이 권한에 영향을 받으므로 꼭~ 관리자 권한으로 실행해야 합니다. 고객님은 프로그램이 Clickonce로 제작되어 있고, 업데이트를 제공한다면 관리자 권한으로 실행에 대해 몇가지 고려해야 합니다. 클릭원스(Clickonce) 환경에서는 관리자 권한으로 실행할 수 있는 방법이 없기 때문입니다. 마이크로소프트는 클릭원스를 저수준의 권한으로 동작하도록 설계(의도한 설계, By Designed)했습니다. 몇가지 손해보는 것을 감수하더라도 아래와 같이 코드를 수정해야 합니다.

    using System;
    using System.Diagnostics;
    using System.Reflection;
    using System.Windows.Forms;
    
    namespace FrameworkTest
    {
        static class Program
        {
            /// <summary>
            /// 해당 애플리케이션의 주 진입점입니다.
            /// </summary>
            [STAThread]
            static void Main()
            {
                if (!NGM.Common.IsAdministrator)
                {
                    var processInfo = new ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase);
    
                    // 다음 속성은 관리자 권한으로 새 프로세스를 실행합니다.
                    processInfo.UseShellExecute = true;
                    processInfo.Verb = "runas";
    
                    // 새 프로세스 시작
                    try
                    {
                        Process.Start(processInfo);
                    }
                    catch (Exception)
                    {
                        // 사용자가 응용 프로그램이 관리자로 실행되도록 허용하지 않았습니다.
                        MessageBox.Show("죄송합니다.이 애플리케이션은 관리자로 실행해야합니다.");
                    }
    
                    // 현재 프로세스 종료
                    Application.Exit();
                }
    
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }

     

    배포 프로세스(Publish Process)는 상당히 고통스러운 작업입니다. 직접 만든다면 말이죠^^; 아마도~ 서비스하는 프로그램을 만드는 시간보다 배포 프로세스와 보안 관련된 작업에 더 많은 시간을 소비하게 될겁니다. 그렇기에 상용 소프트웨어인 인스톨 쉴드를 많이 사용합니다. 그래서 서비스 업체들은 대기업 위주의 서비스로 방향을 바꾸곤 합니다. 배포와 크랙 및 해킹에 자유로울 수 있으니까요. 불특정 다수에게 서비스하는 소프트웨어가 제작 측면에서 훨씬 더 어렵습니다. 시간도 오래 걸리구요. 참고로, 클릭원스 환경에서 관리자 권한으로 실행하면 더이상 자동 업데이트를 확인할 수 없습니다.

     

    지금은 익스플로러를 사용하지 않기 때문에 크게 의미가 있을까 싶지만~ 닷넷 2.0 시절에는 익스플로러를 관리자 권한으로 실행하고 클릭원스를 연결 했었습니다. 윈도우즈 특성상 호출하는 프로그램이 관리자 권한이라면! 호출되는 프로그램도 관리자 권한으로 실행되는 점을 이용했던 것입니다. 요즘에도 익스플로러를 사용하는 회사가 있을지는 모르겠지만 그리 좋은 대안은 아닙니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.