首页 > 代码库 > 使程序只运行一个实例

使程序只运行一个实例

//APP 里面

//1.
// 此程序只能运行一次,用互斥量来判断程序是否已运行

1 HANDLE m_hMutex=CreateMutex(nullptr,TRUE, m_pszAppName); 
2 if(GetLastError()==ERROR_ALREADY_EXISTS) { return FALSE; }

 

 

//2.

1 HWND hWnd = FindWindow(nullptr, m_pszAppName/*_T("MyDlg")*/);   //第一个参数: 窗口的类名   第二个参数: 窗口名称(标题)即m_pszAppName
2     if (IsWindow(hWnd))
3     {
4         ::MessageBox(nullptr, _T("已经有一个实例在运行了!"), _T("提示"), MB_OK);
5         ::ShowWindow(hWnd, SW_NORMAL);     // 显示
6         ::SetForegroundWindow(hWnd);       // 激活
7         return FALSE;
8     }

 

使程序只运行一个实例