C# 윈폼(Windows Form) 중복 실행 방지
- C#/Windows Form
- 2018. 7. 10. 08:00
이번 포스팅에서는 C# Windows Form을 이용하여 하나의 프로세스만 띄우는 방법에 대해서 알아보도록 하겠습니다.
프로그램을 개발하다 보면 중복 실행을 함으로 인해서 프로그램에 잘못하여 문제가 생기는 경우가 있는데, 미연에 이를 방지하기 위한 방법으로 이미 A 라는 프로세스가 실행 중이라면 A가 종료되기 전까지는 중복 실행이 되지 않는 방법에 대해 C# 윈폼 환경에서는 어떻게 구현하는지 지금부터 알아보도록 하겠습니다.
우선 Windows Form 프로젝트를 생성하여 주시기 바랍니다.
여기까지 따라하셨다면, 이제 Program.cs 안에 코드를 아래와 같이 작성하여 주시기 바랍니다.
[Program.cx]
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms;
namespace test { static class Program { /// <summary> /// 해당 응용 프로그램의 주 진입점입니다. /// </summary> [STAThread] static void Main() { try { int cnt = 0;
Process[] procs = Process.GetProcesses();
foreach (Process p in procs) { if (p.ProcessName.Equals("test") == true) cnt++; }
if (cnt > 1) { MessageBox.Show("이미 실행중입니다."); return; } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
catch (Exception ex) { MessageBox.Show(ex.Message, "Program - Error"); }
}
} }
|
위의 코드를 간단히 설명을 드리자면, 먼저 프로세스가 실행될 때 프로세스의 숫자를 세기 위한 카운트 변수를 하나 선언해 주고,
MS에서 제공해주는 Process 클래스 객체를 선언하여 현재 실행 되고 있는 프로세스 이름을 비교해 같은 프로세스가 실행 중이라면 cnt++ 을 해주고, if(cnt > 1) 이라는 예외처리를 통해 만약 cnt가 2 이상이 되면 현재 하나의 프로세스가 켜져 있는 상태에서 또 같은 프로세스를 실행 시키려는 목적으로 간주 하에 MessageBox를 띄어 사용자에게 이미 같은 프로세스가 실행 중이라고 알려주는 코드입니다.
[실행 결과]
위와 같이 첫 번째 실행을 시켰을 때에는 폼이 정상적으로 실행이 되지만, 두번 째 실행을 시켜보면 현재 test라는 프로세스가 실행중이므로 "이미 실행중입니다." 라는 문구를 사용자에게 보여주면서 폼이 생성되지 않는 것을 확인 하실 수 있습니다.
※ 참고 – 프로세스 이름 변경 방법
해당 프로젝트 우클릭 – 속성 – 이름 변경
이로써 C# Windows Form을 이용하여 중복 실행 방지하는 방법에 대하여 간략히 알아보았습니다.
감사합니다.^^
'C# > Windows Form' 카테고리의 다른 글
[C#] DataGridView 데이터 수정한 후 DB 테이블에 Update 하는 방법 (1) | 2018.11.04 |
---|---|
[C#] C# 윈폼을 이용하여 MSSQL 연동하는 방법 (0) | 2018.09.27 |
[C#] 윈폼 크로스 스레드 해결 방법 (0) | 2018.09.19 |
C# 윈폼을 이용하여 Oracle(오라클) 11g 연동 하는 방법 (19) | 2018.09.10 |
C# Windows Form을 이용하여 INI 파일 생성하는 방법 (1) | 2018.07.12 |
이 글을 공유하기