본문 바로가기

Windows/MFC

프로그램 중복 실행 방지

[code]동일 프로그램을 한번만 실행 시키기[/code]

[code]
BOOL CFireApp::InitInstance()
{
    // Mutex 생성
    HANDLE hMutexOneInstance =
        ::CreateMutex(NULL, TRUE, _T("Unique Name of Mutex"));

    BOOL bFound = false;

    // 만약 이미 만들어져 있다면 Instance가 이미 존재함
    if(::GetLastError() == ERROR_ALREADY_EXISTS)
        bFound = true;
    if(hMutexOneInstance)
        ::ReleaseMutex(hMutexOneInstance);

    // 이미 하나의 Instance가 존재하면 프로그램 종료
    if(bFound)
    {
        AfxMessageBox("이미 실행중입니다");
        return false;
    }
}[/code]