吵吵   2011-05-09  阅读:2,422

  很多时候我们只希望我们的程序只启动一个,已经启动了,那么你再双击时不能启动第二个进程。网上有很多做法,例子也很多,我觉得比较好的是用互斥体来做的:

先在app头文件pubulic中定义一个互斥体:HANDLE m_hMutex;

然后就是在app类的InitInstance()中添加代码检测是否进程已经启动:

 m_hMutex = CreateMutex(NULL, TRUE, “StarLee”);

// 检测是否已经创建Mutex
 if ((m_hMutex != NULL) && (GetLastError() == ERROR_ALREADY_EXISTS))
 {
   ReleaseMutex(m_hMutex);

  MessageBox(NULL, “该进程已经启动”, “错误”, MB_OK);// 如果已经创建,就终止进程的启动

 
   return FALSE;
 }www.chaochaoblog.com

当然还得记得在app的ExitInstance()中释放它

 if (m_hMutex != NULL)
 {
  ReleaseMutex(m_hMutex);
  CloseHandle(m_hMutex);
 }

好了,这样子你每次启动多个进程的时候会发现弹出提示框然后停止了你运行的程序。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

发表评论

电子邮件地址不会被公开。 必填项已用*标注