利用互斥体(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;
}
#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;
}
相关文章推荐
- C#利用Mutex实现只运行一个程序实例
- C#利用Mutex实现只运行一个程序实例
- 利用互斥对象实现一个程序只运行一个实例的方法.
- 使用互斥体Mutex 实现应用程序只有一个实例运行
- QT实现只允许运行一个程序实例
- C#利用Mutex互斥量实现同时只有一个进程实例在运行
- 实现同时只允许运行一个程序实例
- 实现同时只允许运行一个程序实例
- 使用C#实现只允许运行一个程序实例的几种方法
- bat脚本实例实现只允许运行一个实例(安装程序、创建快捷方式脚本)
- 仅允许程序运行一个实例代码实现
- 实现同时只允许运行一个程序实例
- 实现只允许程序运行一个实例
- [转]实现同时只允许运行一个程序实例
- System.Threading.Mutex:一台电脑上面只有一个进程实例在运行,利用Mutex互斥量可以实现了这个功能
- c#WinForm 程序单实例运行并打开前一个实例(Mutex+API)
- WINCE中只允许程序运行一个实例
- VC 实现程序只运行一个实例
- 用C#给程序加启动画面并只允许一个应用程序实例运行[转]
- VC++实现程序只运行一个实例 (转)