当我运行EXE的时候,如果前面有这个运行了就不再运行了
这个怎么实现啊

解决方案 »

  1.   

    BOOL CCountTimeApp::IsOneInstance(){
    hMutex = ::CreateMutex(NULL,TRUE,"GlobalMutex");
    switch(::GetLastError()){
    case ERROR_SUCCESS:
    break;
    case ERROR_ALREADY_EXISTS:
    return TRUE;
    default:
    return TRUE;
    }
    return FALSE;
    }
    ===================
    BOOL CCountTimeApp::InitInstance()
    {
    if(IsOneInstance()){
    CDialog* pDlg;
    pDlg = (CDialog*)CWnd::FindWindow(NULL,"游戏计时");
    pDlg->ShowWindow(SW_SHOW);
    pDlg->SetForegroundWindow();
    return FALSE;
    }
    ........
    }
      

  2.   

    //程序开始运行的时候
    HANDLE hMutex = CreateMutex(NULL,FALSE,"WORK_ZZJ_BJMJ");
    if(GetLastError() == ERROR_ALREADY_EXISTS)
    {
    CloseHandle(hMutex);
    MessageBox(NULL,"Program has already run!",":)",MB_OK|MB_ICONINFORMATION);
    return FALSE;
    }//程序运行结束的时候
    CloseHandle(hMutex);