让程序只有一个应用程序实例在运行
2011-05-28 21:54
393 查看
当一个应用程序正在运行的时候我们不希望双击这个应用程序的时候又开启一个新的运行实例, 而仅仅只需要激活先前的实例即可。下面介绍三种简单的方法, 都是在程序开始的时候加入代码:
第一种方法:
第二种方法(互斥对象):
第三种方法(事件对象):
第一种方法:
HWND hOldWnd = NULL; /// define OLD_WND_NAME "先前窗口实例的名字" hOldWnd = ::FindWindowEx(NULL, NULL, NULL, OLD_WND_NAME); if (hOldWnd) { ::ShowWindow(hOldWnd, SW_RESTORE); ::SetForegroundWindow(hOldWnd); return 0; }
第二种方法(互斥对象):
HANDLE hMutex; hMutex = CreateMutex(NULL, TRUE, L"any name"); if (hMutex) { if (ERROR_ALREADY_EXISTS == GetLastError()) { // 直接返回 return 0; } }
第三种方法(事件对象):
HANDLE hEvent; hEvent= CreateEvent(NULL, FALSE, FALSE, L"any name"); if (hEvent) { if (ERROR_ALREADY_EXISTS == GetLastError()) { // 直接返回 return 0; } }
相关文章推荐
- 保证程序只有一个运行实例
- C#如何让应用程序只有一个实例在运行
- 保证应用程序只有一个实例在运行——VS2008
- 如何让一个程序只有一个运行实例
- 使用互斥量保证程序最多只有一个实例运行
- 如何确保只有一个应用程序实例在运行?
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- 保证程序只有一个实例运行并且先将旧实例关闭再运行新实例
- 如何让程序只有一个实例运行(用tftp时的感想)?
- 保证应用程序只有一个实例在运行
- 让应用程序只有一个实例运行
- 使用互斥量保证程序最多只有一个实例运行
- 用C#给程序加启动画面并只允许一个应用程序实例运行[转]
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- 保证应用程序只有一个实例在运行
- 让程序只有一个进程实例在运行
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- 保证应用程序只有一个实例在运行
- 如何使应用程序只有一个实例在运行
- 让程序只有一个实例运行