Dev/win32

중북실행방지 코드(Win32)

2ssoosike 2008. 3. 18. 09:27
BOOL CheckDoubleRun()
{
    HANDLE hMutexOneInstance = ::CreateMutex(NULL, TRUE, _T("AutoExcel"));

    BOOL bFound = FALSE;

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

    if(hMutexOneInstance)
        ::ReleaseMutex(hMutexOneInstance);

    // 이미 하나의 Instance가 존재하면 프로그램 종료
    if(bFound)
    {
        MessageBox(NULL, _T("이미 실행중입니다"), "경고", MB_OK);
        return TRUE;
    }
    return FALSE;
}