VC++ 一次只能运行一个程序设置

时间:2021-08-14 19:55:54

在App文件中的InitlInstance()中增加

BOOL CDockPaneApp::InitInstance()
{
 // 如果一个运行在 Windows XP 上的应用程序清单指定要
 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
 //则需要 InitCommonControlsEx()。否则,将无法创建窗口。
 INITCOMMONCONTROLSEX InitCtrls;
 InitCtrls.dwSize = sizeof(InitCtrls);
 // 将它设置为包括所有要在应用程序中使用的
 // 公共控件类。
 InitCtrls.dwICC = ICC_WIN95_CLASSES;
 InitCommonControlsEx(&InitCtrls);

 CWinAppEx::InitInstance();

 // 只能运行一个程序,用互斥量来判断程序是否已运行
 HANDLE m_hMutex=CreateMutex(NULL,TRUE, m_pszAppName);
 if(GetLastError()==ERROR_ALREADY_EXISTS)
 {
  AfxMessageBox(_T("系统已经运行!"));//,IDCANCEL|MB_ICONEXCLAMATION,0);
  return FALSE;
 }

 

..................