防止程序重复打开

来源:互联网 发布:开元盛世 知乎 编辑:程序博客网 时间:2024/06/03 15:57

在应用程序类的InitInstance函数中加入以下代码:

HANDle hMutex = ::CreateMutex(NULL,NULL,m_pszAppName);

if(GetLastError() == ERROR_ALREADY_EXISTS)//判断CreateMutex()的错误信息

{

MessageBox(NULL,_T("程序已经启动了"),_T("提示"), MB_ICONINFORMATION);

CloseHandle(hMutex);

return FALSE;

}

这段的意义是CreateMutex函数创建了一个在系统全局内的互斥对象,第3个参数是CWinApp类的成员变量,代表当前进程的名字,当有程序试图创建一个重名的对象时,CreateMutex返回一个空值,并且用GetLastError函数会返回ERROR_ALREADY_EXISTS,利用这个返回值,可以判断程序是否真正运行。

0 0
原创粉丝点击