VC++判断程序是否已经运行;仅运行一次
BOOL CClientApp::InitInstance()
{
...
//判断程序是否已经运行;仅运行一次
CreateMutex(NULL,true,_T("xxxxx")); //xxxxx:为程序标识码
if(GetLastError()==ERROR_ALREADY_EXISTS)
{
AfxMessageBox("已经有一个程序示例在运行");
TerminateProcess(GetCurrentProcess(),0);//结束自身进程句柄
}
...
}
如上代码所示,在程序的InitInstance中,xxxxx即为程序的标识,程序运行会检测是否存在已经运行的标识;如果存在,则提示并退出;
需要注意的是,不同的程序应该设置不同的值;