NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

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

    디자이너 디자이너를 공유하거나 판매할 때 실행 갯수를 제한하는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 디자이너를 판매하거나 공유할 때 실행되는 프로그램의 갯수를 목적에 맞게 제한할 수 있습니다. 물론, 제한하지 않아도 됩니다^^; 아무튼, 프로그램의 갯수를 제한하는 방법은 여러가지가 있을 수 있겠지만 쉽게 처리할 수 있는 방법은 아래 2가지입니다. 이외에는 별도의 시스템 구축(데이타베이스+웹서버+기타)이 필요하기 때문에 논외로 하겠습니다.

    1. 프로세스로 처리하기.

    static void Main()
    {
        Process[] procs = Process.GetProcessesByName("프로세스 이름");
        // 하나 이상 실행중이라면...
        if (procs.Length > 1)
        {
            MessageBox.Show("프로그램이 이미 실행되고 있습니다.\n관리자에게 문의하시기 바랍니다.");
            return;
        }
        // 프로세스가 하나인 경우 프로그램을 정상적으로 실행시킵니다.
        else
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }

     

     

    이 방법은 약간의 문제점을 가지고 있습니다. NGM 제품의 경우 프로세스명을 변경할 수 있는데요. 만약, 사용자가 프로세스명을 변경하고 사용한다면 갯수 체크가 안됩니다. 따라서, 뮤텍스로 처리하는 방법을 이용하는게 가장 깔끔하다고 할 수 있습니다. 물론, 현재 실행중인 프로그램의 프로세스명을 런타임(Run-time)에 가져와서 변수 처리해도 됩니다. 이 경우에는 좀 더 디테일하게 작업해줘야 합니다.

    2. 뮤텍스로 처리하기.

        bool isFirst;
        // mutex 객체를 생성합니다.
        Mutex mutex = new Mutex(true, "관리 코드", out isFirst);
        if (isFirst)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            // 생성한 뮤텍스를 해제시킵니다.
            mutex.ReleaseMutex();
        }
        else
        {
            MessageBox.Show("프로그램이 이미 실행되고 있습니다.\n관리자에게 문의하시기 바랍니다.");
            return;
        }

     

     

    간단하죠^^?

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

    댓글목록

    등록된 댓글이 없습니다.