1)在InitInstance()函数中添加如下代码:
HANDLE m_hMutex = ::CreateMutex(NULL,TRUE,m_pszName);
if (GetLastError() = = ERROR_ALREADY_EXISTS)
{
AfxMessageBox(“您已经运行了本软件!谢谢使用 ”); //已经运行了程序
return FALSE;
}
其中:
HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes,
// pointer to security attributes
BOOL bInitialOwner, // flag for initial ownership
LPCTSTR lpName // pointer to mutex-object name
);
LPSECURITY_ATTRIBUTES :标志函数返回值HANDLE是否可以被子进程继承,为NULL标志不能被继承;
bInitialOwner:标志互斥量的所有者,为TRUE标志调用者创建了互斥量,并且调用线程拥有该互斥量,否则调用线程不拥有该互斥量;
Name :互斥量名称。
2)关闭互斥体
响应ExitInstance()函数,并添加如下代码:
CloseHandle(m_hMutex);
浙公网安备 33010602011771号