只运行一个应用程序的实例

来源:互联网 发布:淘宝最厉害的算命 编辑:程序博客网 时间:2024/05/10 15:54
#defineAPP_ID"C4A75624-61A8-4D2D-9112-E410742857E8" // GUIDvoid 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()即可

0 0
原创粉丝点击