SPRING :: NOTE

[MFC] 프로그램 중복 실행 방지하기 본문

Development Language/C · C++ · MFC

[MFC] 프로그램 중복 실행 방지하기

RAYZIE 2016. 4. 5. 23:09
반응형
Dialog 기반으로 설명하겠다. 

 만약, test 라는 MFC Dlg 기반 프로젝트를 생성하게 되면 총 4개의 *.h 파일과 *.cpp 파일이 생성된다.

 test.h // test.cpp // testDlg.h // testDlg.cpp 

 이 중 test.cpp 파일에 본 소스를 붙여넣기 한다.
// ############################## 중복실행 방지 ####################################
	HANDLE hMutex = CreateMutex(NULL, TRUE, _T("ABC"));
	if (GetLastError() == ERROR_ALREADY_EXISTS)
	{
		ReleaseMutex(hMutex);

		CWnd *pWndPrev, *pWndChild;
		pWndPrev = CWnd::FindWindow(NULL, _T("ABC"));
		if (pWndPrev)
		{
			pWndChild = pWndPrev->GetLastActivePopup();

			if (pWndChild->IsIconic())
				pWndPrev->ShowWindow(SW_RESTORE);

			pWndChild->SetForegroundWindow();
		}
		else
		{
			AfxMessageBox(_T("이미 프로그램이 실행중입니다."));
		}
		return FALSE;
	}
	ReleaseMutex(hMutex);
// ############################## 중복실행 방지 ####################################


반응형

'Development Language > C · C++ · MFC' 카테고리의 다른 글

[MFC] 프로그램 종료버튼 이벤트(X버튼)  (0) 2016.04.27
[MFC] Modaless(모달리스) 컨트롤  (0) 2016.04.27
[MFC] RichEdit Control  (0) 2016.03.11
[MFC] EDIT CONTROL  (0) 2016.03.10
[MFC] BUTTON CONTROL  (0) 2016.03.10
Comments