MFC中2种方式用互斥体函数避免多开

2021/9/25 6:41:00

本文主要是介绍MFC中2种方式用互斥体函数避免多开,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第一种方式(查找程序名)

HANDLE m_hMutex = CreateMutex(NULL,TRUE, "程序名");
if(GetLastError()==ERROR_ALREADY_EXISTS)
{
AfxMessageBox("此程序已经运行");
return FALSE;
}

第二种方式(查找进程名)

const char *MutexObject = "test.exe";  //test.exe为进程名
hMutex = NULL;

hMutex = ::CreateMutex(NULL,false,MutexObject);

if(hMutex != NULL){
DWORD err = GetLastError();

if(err == ERROR_ALREADY_EXISTS)
AfxMessageBox("此程序已经运行");
::PostQuitMessage(0);//退出进程
}

这两种方式都必须要在程序未运行之前进行判断
在CXXXApp::InitInstance() 函数里面调用



这篇关于MFC中2种方式用互斥体函数避免多开的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程