很多时候我们只希望我们的程序只启动一个,已经启动了,那么你再双击时不能启动第二个进程。网上有很多做法,例子也很多,我觉得比较好的是用互斥体来做的:
先在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);
}
好了,这样子你每次启动多个进程的时候会发现弹出提示框然后停止了你运行的程序。
如无特别说明,本博客文章皆为原创。转载请说明,来自吵吵博客。
原文链接:http://chaochaoblog.com/archives/195
吵吵微信朋友圈,请付款实名加入: