保证应用程序只运行一个实例的技巧
2011-05-24 15:50
253 查看
很多应用程序仅允许一个实例运行,那么如何做到呢?下面介绍一种方法:
1.使用互斥对象实现;
在调用CreateMutex函数创建一个命名互斥对象的时候,如果返回值是一个有效句柄,就可以直接调用GetLastError函数;
如果返回值是ERROR_ALREADY_EXISTS就表明先前已经创建了这个命名互斥对象,因此就知道已经有一个应用程序实例
在运行了;
2.使用事件对象实现,原理一样;
在调用CreateEvent函数创建一个命名时间对象的时候,如果返回值是一个有效句柄,就可以直接调用GetLastError函数;
如果返回值是ERROR_ALREADY_EXISTS就表明先前已经创建过了;
1.使用互斥对象实现;
在调用CreateMutex函数创建一个命名互斥对象的时候,如果返回值是一个有效句柄,就可以直接调用GetLastError函数;
如果返回值是ERROR_ALREADY_EXISTS就表明先前已经创建了这个命名互斥对象,因此就知道已经有一个应用程序实例
在运行了;
HANDLE hMutex; int main() { hMutex = CreateMutex(NULL, TRUE, "me"); if(hMutex) { cout << "only one instance can run!" << endl; return; } }
2.使用事件对象实现,原理一样;
在调用CreateEvent函数创建一个命名时间对象的时候,如果返回值是一个有效句柄,就可以直接调用GetLastError函数;
如果返回值是ERROR_ALREADY_EXISTS就表明先前已经创建过了;
HANDLE hEvent; int main() { hEvent = CreateEvent(NULL, FALSE, TRUE, NULL); if(hEvent) { if(ERROR_ALREADY_EXISTS == GetLastError() ) { cout << "Only one instance can run!" << endl; return ; } }
相关文章推荐
- 保证应用程序只有一个实例在运行
- 保证应用程序只有一个实例在运行
- 保证只运行一个实例应用程序
- MFC开发技巧——应用程序只能运行一个实例
- 保证应用程序只有一个实例在运行
- 保证应用程序只运行一个实例[c#]
- 保证只运行一个实例应用程序
- 保证c#应用程序只有一个实例运行
- 保证C#应用程序只有一个实例在运行
- VC保证应用程序只有一个实例在运行
- 保证应用程序只运行一个实例[c#]
- 15.5 保证应用程序只有一个实例运行(Mutex)
- 保证应用程序只有一个实例在运行
- 保证应用程序只有一个实例在运行
- 保证应用程序只有一个实例在运行
- VC保证应用程序只有一个实例在运行
- 保证应用程序只有一个实例在运行——VS2008
- VC保证应用程序只有一个实例在运行
- 保证应用程序只有一个实例运行.txt
- 保证应用程序只有一个实例在运行