可以通用互斥事件实现。
直接上例子吧:
#define IDS_EXE_NAME_0 L"EXE_NAME_0"
//创建互斥事件
HANDLE m_hMutex = CreateMutex(NULL,NULL,IDS_EXE_NAME_0);
//如果此事件已存在,则关闭程序。(禁止同时运行两个实例)
if(GetLastError()==ERROR_ALREADY_EXISTS)
{
AfxMessageBox(L"该程序已经运行!");
return false;
}
ReleaseMutex(m_hMutex);