QQ登录

只需一步,快速开始

上位机MFC如何使应用程序只运行一个实例

[ 复制链接 ]
可以通过互斥对象来判断是否已有程序整合运行。例如我们准备一个互斥对象变量,程序初始化创建
        //创建互斥量
        m_hMutex = ::CreateMutex(NULL, FALSE, _T("DemoApp"));

        //判断互斥量是否存在
        if (GetLastError() == ERROR_ALREADY_EXISTS)       
        {
                AfxMessageBox("应用程序已经运行。");
                return FALSE;       
        }
        else
        {
                AfxMessageBox("应用程序第一次运行。");
        }

如果 创建失败,就表示已有程序运行。

在我们程序退出时,记得关闭互斥对象句柄就好 。

  1. int CDemoApp::ExitInstance()
  2. {
  3.         if (m_hMutex != NULL)
  4.         {
  5.                 //关闭句柄
  6.                 CloseHandle(m_hMutex);
  7.         }

  8.         return CWinApp::ExitInstance();
  9. }
复制代码


回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索