1. 程式人生 > >MFC程式唯一執行判斷(只能執行一個例項)

MFC程式唯一執行判斷(只能執行一個例項)

方法一:

BOOL CIrisApp::InitInstance()
{
    //加入程式唯一執行
    ::CreateMutex(NULL,TRUE,m_pszExeName);
    if(GetLastError()==ERROR_ALREADY_EXISTS)
    {
        AfxMessageBox(_T("該程式已經執行"));
        exit(0);
    }

}

方法二:

InitInstance()中加入

m_hMutex = ::CreateMutex(NULL, TRUE, "互斥名(隨便取)"); if (GetLastError() == ERROR_ALREADY_EXISTS) 
//程式已經執行 { HWND   oldHWnd = NULL;    oldHWnd = ::FindWindow(NULL, _T("程式名")); //查詢已經執行的程式 if (oldHWnd)    {    ::ShowWindow(oldHWnd, SW_SHOWNORMAL); //啟用顯示找到的已執行的程式 ::SetForegroundWindow(oldHWnd);       //將已執行的程式設定為當前視窗 }   CloseHandle(m_hMutex); m_hMutex = NULL; return FALSE; }