WPF 중복 실행 방지 코드

2018. 7. 23. 09:00·사소한 아이의 소소한 스킬/C#
반응형

얼마만의 기술포스팅인가..


항상 적어야지만 생각하다가...


안적고.... 이제 드디어 적어본다.


정말 간단한 코드지만...


적어놔야 나중에 또 안 까먹지..


단순히 c# 응용 프로그램이 중복으로 실행되지 않도록 하는 코드다.


방법은 3가지가 있으니.. 각자 편한걸로 사용하면 된다..


근데 각각 사용되는 로직은 거의 비슷하다...


현재 수행중인 프로세스에서 수행하고자 하는 프로세스가 수행되고 있는지 확인 후 실행하는 로직


그럼 코드 고고


첫번째 방법


Mutex를 이용하는 방법이다.


운영체제 시간에 많이 들어봤을 단어일 것이다..


이걸로 손쉽게 중복실행을 체크할수 있다.


1
2
3
4
5
6
7
8
9
10
bool createdNew ;
// MyMutex라는 문자열을 유니크하게 구성하면 더 좋습니다. 
Mutex gM1 = new Mutex(true,"MyMutex", out createdNew);
    if (createdNew)
    {
        Application.Run(new Form1());
        gM1.ReleaseMutex();
    }
    else
        MessageBox.Show("이미 실행되어 있습니다.");
cs



두번째 방법

프로세스를 가져와서 프로세스의 이름을 가져오기!


1
2
3
4
5
6
7
8
9
10
11
12
try
{   
    Process[] myProcesses = Process.GetProcessesByName("ProcessName");    if (myProcesses.Length > 1)
    {
        MessageBox.Show("[ProcessName]가 이미 실행 중입니다.", "TimeOff", MessageBoxButtons.OK);
        Application.Exit();
    }
}
catch()
{
    
}
Colored by Color Scripter
cs


세번째 방법


이것도 프로세스로 가져오기



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Processcount = 0;
Process[] procs;       
procs = Process.GetProcesses();        
foreach(Process aProc in procs)       
{           
    if(aProc.ProcessName.ToString().Equals("KotraServer"))          
    {             
        processcount++;        
    }       
}    
 
if(processcount == 1)   
{
    Application.Run(new ServerMain());       
}
else      
{          
    MessageBox.Show("이미 실행되어 있습니다.");        
    return;
}
 
Colored by Color Scripter
cs

이거 포스팅으로 오늘 포스팅은 끝....

진짜 또 포스팅 자주자주해야하는데!!!


반응형
저작자표시 비영리 변경금지 (새창열림)
'사소한 아이의 소소한 스킬/C#' 카테고리의 다른 글
  • WPF BoolToVisibilityConverter
  • DLL 관리하기!
  • 대소문자 구분없는 string 비교법
  • ENUM Length 가져오기
JOOJI
JOOJI
그냥 혼자좋아하는 것들 남기는 블로그....
  • JOOJI
    사소한프로그래머의 소소한행복
    JOOJI
  • 전체
    오늘
    어제
    • 분류 전체보기 (965) N
      • 사소한 아이의 소소한 일상 (247) N
      • 사소한 아이의 소소한 먹거리 (44)
      • 사소한 아이의 소소한 정보 (75) N
      • 사소한 아이의 소소한 감사 (4)
      • 사소한 아이의 소소한 운동 (64) N
      • 사소한 아이의 소소한 여행 (40)
        • 2013_전주 (1)
        • 2014_독일 (13)
        • 2014_군산 (1)
        • 2015_제주도 (3)
        • 2015_서울모토쇼 (3)
        • 2015_진해 (1)
        • 2015_전주 (1)
        • 2016_여수 (1)
        • 2020_강릉 (1)
        • 2022_제주도 (4)
      • 사소한 아이의 소소한 강짱 (22)
        • 하트투하트 (10)
        • MAPS (1)
        • 화려한 유혹 (2)
        • 한여름의 추억 (2)
      • 사소한 아이의 TV (50)
        • Drama (9)
        • 예능 (32)
        • 사소한 아이의 다현 (9)
      • 사소한 아이의 소소한 스킬 (130)
        • Scaleform (2)
        • C# (74)
        • QT (3)
        • 알고리즘 (4)
        • Python (21)
        • PyQT5 (9)
        • C_C++ (2)
      • 사소한 아이의 소소한 축구 (283)
        • Korea (25)
        • Germany (45)
        • Bayern Munich (64)
        • Soccer_ETC (75)
        • Euro 2016 (12)
        • 친선경기 (3)
      • 사소한 아이의 소소한 생활정보 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
    • 관리
  • 링크

    • 독일여행
    • 레바티스토리
    • 프라치노 공간
    • 남성패션꿀템 블로그
  • 공지사항

  • 인기 글

  • 태그

    바이에른 뮌헨
    러닝
    뮌헨
    WPF
    c#
    문제
    python
    회사밥
    분데스리가
    독일
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JOOJI
WPF 중복 실행 방지 코드
상단으로

티스토리툴바