이것저것/My_Work

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

우담바라 2013. 9. 9. 19:56

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;
}

'이것저것 > My_Work' 카테고리의 다른 글

[MFC] - 포커스 없는 창 만들기  (0) 2013.09.24
[HTML5/PHP] - jWebSocket 데모 테스트  (0) 2013.09.13
Windows 7 관리자 권한  (0) 2013.08.12
dll dependent 체크  (0) 2013.06.14
Self_안드로이드  (0) 2013.03.13