MFC程序设置只能启动一次

转载请注明出处: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的内核对象就会返回错误,错误信息将是已存在该名称的内核对象

你可能感兴趣的:(MFC程序设置只能启动一次)