您的位置:首页 > 其它

利用互斥体(MUTEX)实现程序只允许运行一个实例

2011-01-25 15:46 661 查看
实现程序只允许运行一个实例的方法有利用互斥体,以及利用程序的某些属性(比如窗口类名称和窗口对象名称)等。这里贴一段利用利用互斥体(MUTEX)实现程序只允许运行一个实例的代码!

#include <windows.h>
#include <iostream>
using namespace std;

int main()
{

// 创建互斥体

HANDLE hMutex = CreateMutex(NULL, FALSE, "ONLY_ONE_PROCESS");

if (NULL == hMutex)

{

cout << "Failed to create Mutex!" << endl;

system("pause");

return -1;

}

// 当存已经运行一个实例则退出

if (hMutex && ERROR_ALREADY_EXISTS == GetLastError())

{

MessageBox(NULL, "Mutex already exists!", "Error!", MB_OK);

return -1;

}

system("pause");

ReleaseMutex(hMutex); // 释放互斥体持有权

CloseHandle(hMutex); // 关闭句柄,释放占用的资源

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: