SPRING :: NOTE
[MFC] 프로그램 중복 실행 방지하기 본문
반응형
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