只运行一个应用程序的实例
2014-12-18 00:34
169 查看
#define APP_ID "C4A75624-61A8-4D2D-9112-E410742857E8" // GUID void CTestDlg::OnlyRunOneInstance() { BOOL bInstanceExist=false; HWND hWnd = ::GetWindow(::GetForegroundWindow(), GW_HWNDFIRST); for (; hWnd; hWnd = ::GetWindow(hWnd, GW_HWNDNEXT)) { if ((HANDLE)::GetProp(hWnd, APP_ID) == (HANDLE)1) { if (::IsIconic(hWnd)) { ::ShowWindow(hWnd, SW_RESTORE); //还原最小化的窗口 } ::SetForegroundWindow(hWnd); //激活窗口 bInstanceExist=true; //赋值0是为了防止ExitInstance中将找到的ATOM量删除 break; } } if(bInstanceExist) { exit(0); } else { // 给添加一个具有唯一性的属性值 ::SetProp(this->m_hWnd, APP_ID, (HANDLE)1); } }
然后在初始化对话框中调用函数OnlyRunOneInstance()即可
相关文章推荐
- 保证C#应用程序只有一个实例在运行
- 保证应用程序只有一个实例在运行
- Delphi中如何防止运行一个应用程序的多个实例
- 保证应用程序只有一个实例在运行
- 禁止一个应用程序的实例在同一台机器上运行多个(C#源码)
- 用C#让应用程序只有一个实例在运行
- 如何使应用程序只运行一个实例
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- 保证应用程序只有一个实例在运行
- 利用内核对象----互斥量实现应用程序只运行一个实例
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- 关于"如何让应用程序只有一个实例在运行"的孟宪会的解决方法的疑问
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- 如何让应用程序只有一个实例在运行?
- 让一个应用程序只运行一个实例
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- .Net平台下使应用程序只运行一个实例
- 如何用创建命名对象来判断应用程序是否已有一个实例在运行?
- 如何使应用程序只有一个实例在运行
- 如何让应用程序只有一个实例在运行