MFC 중복 실행 막기

300x250

 

 

 

중복 실행 막는 방법은 대략 아래와 같이 3가지 방법이 있다고 합니다.

 

1. 프로세스 목록에서 프로그램 이름을 확인해서 막는 방법

2. Mutex를 사용한 방법

3. 공유메모리를 사용한 방법

 

저는 Mutex를 사용한 방법이 좋다고 해서 자주 사용하는데 이 방법으로 중복 실행을 막는 방법에 대해서 설명 할께요.

간단합니다.

 

MFC 프로그램 코드를 봅시다.

프로젝트 이름이 Test 라는 프로젝트로 만들었다면, CTestApp::InitInstance() 라는 함수가 있어요.

 

 

아래 예시 코드를 보면

기존 함수 제일 위에

7줄의 return 코드를 넣어주세요. 바로 이해가 될것이라고 생각 됩니다.

TestApp은 체크할 프로그램 이름과 일치할 필요는 없어요.  다른 프로그램 이름과 안겹치게 유니크 하게 작성해 주세요

BOOL CTestApp::InitInstance()
{
	// 추가해야 하는 코드
	HANDLE hMutex = NULL;
	hMutex = CreateMutex(NULL, TRUE, _T("TestApp"));
	if (GetLastError() == ERROR_ALREADY_EXISTS)
	{
		AfxMessageBox(_T("프로그램이 이미 실행 중입니다."));
		return FALSE;
	}


	// 밑에는 기존 코드
    //
    //
    //
    //
       
    return FALSE;
}

이상입니다.

 

 

좋은 프로그램 만드세요.

2023년 어느 겨울 작성.

 

 

 

300x250

댓글()