반응형

* 프로그램 중복 실행 방지 예제

 

1. Visual Studio 를 켜고 메뉴에서 파일 -> 새로 만들기 -> Project 를 선택

   C# Windows Forms 응용 프로그램 열어 줍니다.

 

2. 아래의 그림과 같이 오른쪽 솔루션 탐색기에서 Program.cs 파일을 더블 클릭 하여 소스를 열어 줍니다.

3. Program.cs 파일 Main() 함수 안에 중복 코드 구현

 

            //이미 프로그램이 실행 중 일때...
            System.Diagnostics.Process[] processes = null;
            string strCurrentProcess = System.Diagnostics.Process.GetCurrentProcess().ProcessName.ToUpper();
            processes = System.Diagnostics.Process.GetProcessesByName(strCurrentProcess);
            if (processes.Length > 1)
            {
                MessageBox.Show(string.Format("'{0}' 프로그램이 이미 실행 중입니다.", System.Diagnostics.Process.GetCurrentProcess().ProcessName));
                return;
            }

또는 Form1.cs 안에서 구현 가능 합니다.

 

            //이미 프로그램이 실행 중 일때...
            System.Diagnostics.Process[] processes = null;
            string strCurrentProcess = System.Diagnostics.Process.GetCurrentProcess().ProcessName.ToUpper();
            processes = System.Diagnostics.Process.GetProcessesByName(strCurrentProcess);
            if (processes.Length > 1)
            {
                MessageBox.Show(string.Format("'{0}' 프로그램이 이미 실행 중입니다.", System.Diagnostics.Process.GetCurrentProcess().ProcessName));
                Application.Exit();
            }

다만 둘 차이가 Program.cs 안에서는 return 으로 끝나지만 Form1.cs 안에서는 Application.Exit() 로 끝난다는 점 입니다.

Program.cs 안에서는 보시는 바와 같이 메인 함수 안에서 아직 어플리케이션이 시작 전에 있기 때문에 그렇고

Form1.cs 안에서는 이미 어플리케이션이 실행 되었기 때문에 그렇습니다.

 

4. EXE 파일이 빌드된 폴더로 이동 하여 EXE 파일을 마구 클릭 해 봅니다.

아래는 제가 예제로 만든 예제 위치 이며 각기 다를 수 있습니다.

-> C:\바탕화면\CSharp_ProgramOverlap\CSharp_ProgramOverlap\bin\Debug

반응형

+ Recent posts