转载请注明出处:http://blog.csdn.net/drecik__/article/details/8061898
利用用互斥量来判断程序是否已运行
在CxxApp类中的InitInstance
HANDLE m_hMutex = CreateMutex(NULL,TRUE, m_pszAppName);
if ( GetLastError() == ERROR_ALREADY_EXISTS )
{
AfxMessageBox(TEXT("只能启动一个程序"));
return FALSE;
}
简单介绍下原理:
在Windows中所有的内核对象共用一个命名空间,所以当创建一个m_pszAppName的互斥量(也可以是其他内核对象)的时候,在创建一个m_pszAppName的内核对象就会返回错误,错误信息将是已存在该名称的内核对象