1方案一:添加互斥量
”CSSegment“ 自定义
BOOL CCSWinApp::InitInstance()
{
//单例进程模式
HANDLE hMutex=::CreateMutex(NULL,TRUE,_T("CSSegment"));
if(hMutex!=NULL)
{
if(GetLastError()==ERROR_ALREADY_EXISTS)
{
AfxMessageBoxEx(_T("程序已经运行!"));
CloseHandle(hMutex);
return FALSE;
}
}
//.......................
CDlgMain dlg;
m_pMainWnd = &dlg;
dlg.DoModal();
ReleaseMutex(hMutex);
CloseHandle(hMutex);
return FALSE;
}
方案二:
检测文件a存不存在:存在,退出程序;不存在创建文件-程序运行......删除文-程序退出
方案三:
检测socket端口a是否被占用;占用,退出程序;没有占用-监听socket端口a-程序运行......释放端口-程序退出
方案四:
检测注册表a位置是否写入数据b;已经写入数据b,退出程序;没有写入,在注册表a位置写入数据b-程序运行......改回原值-程序退出