使程序只能同时运行一个实例

原理:程序通过CreateMutex函数来创建一个互斥量,如果GetLastError不等于ERROR_ALREADY_EXISTS,
即:如果本程序的实例还没有运行,那么就正常启动程序;反之说明本程序已经有一个实例在运行,那么就
弹出一个对话框提示用户。
 实现:
 1、在应用程序类中声明一个全局变量:
  HANDLE m_hOneInstance;
 2、在应用程序类的 InitInstance()函数中创建对话框之前添加如下代码:

Code:
  1. m_hOneInstance=::CreateMutex(NULL,FALSE,"Test");   
  2.  if (GetLastError()==ERROR_ALREADY_EXISTS)   
  3.  {   
  4.   AfxMessageBox("本程序只能同时运行一个!");   
  5.   return false;   
  6.  }   

 3、给应用程序类添加消息函数 ExitInstance(),以释放互斥量。

Code:
  1. int CTtApp::ExitInstance()    
  2.   {   
  3.    CloseHandle(m_hOneInstance);   
  4.    return CWinApp::ExitInstance();   
  5.   }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值