[MFC] – 동일 어플 반복 실행 방지

SDI 로 작업하였다면, 응용프로그램 객체에 해당 함수를 선언 후 추가.

그리고 프로그램이름(IDS_APP_NAME)을 리소스에 등록하거나, 가져와서 사용

BOOL CWebBroApp::IsRunning(void)
{
CString appName = _T(“”);
appName.LoadString(IDS_APP_NAME);

// HANDLE hMuxtex = CreateMutex(NULL, TRUE, (LPCTSTR)TEXT(“ADIcon”));
HANDLE hMuxtex = CreateMutex(NULL, TRUE, (LPCTSTR)appName);

if(GetLastError() == ERROR_ALREADY_EXISTS)
 {
ReleaseMutex(hMuxtex);

CWnd *pWndPre = NULL, *pWndChild = NULL;
/*
if(pWndPre = CWnd::FindWindow(NULL, appName))
{
pWndChild = pWndPre->GetLastActivePopup();

//프로그램이 이미 실행 중이고 메뉴 바 윈도우가 화면에 보이지 않는 경우
if(!pWndPre->IsWindowVisible())
{
// 화면에 보이게 처리
pWndPre->ShowWindow(SW_SHOW);
pWndChild->SetForegroundWindow();
}
}
*/
return TRUE;
}

ReleaseMutex(hMuxtex);

return FALSE;
}