博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC 只启动一个程序实例
阅读量:5368 次
发布时间:2019-06-15

本文共 683 字,大约阅读时间需要 2 分钟。

问题描述: 我们开发过程中可能会经常遇到,只启动一个程序实例。即一个程序启动之后,如果再次执行该程序,将会恢复之前打开的程序,而不是打开一个新的程序。

实现原理:利用FindWindow/FindWindowEx查找指定窗口的句柄,如果找到,则当前程序已经执行,只需重新显示到最前面即可;如果没有找到,表示程序没有运行, 继续执行程序初始化。

程序示例:

BOOL SingletonInstance(){    HWND hPreWnd;    if ( hPreWnd = ::FindWindow(NULL, APP_NAME) )    {        if ( IsIconic(hPreWnd) )  // IsIconic: Is Minisized? IsZoomed: Is Maxisized?         {            ::ShowWindow( hPreWnd, SW_SHOWNORMAL );            SetForegroundWindow(hPreWnd);        }        else        {            ::ShowWindow( hPreWnd, SW_RESTORE );            SetForegroundWindow(hPreWnd);        }        return TRUE;    }    return FALSE;}

 

转载于:https://www.cnblogs.com/nchxmoon/p/3198188.html

你可能感兴趣的文章
洛谷 P1991 无线通讯网
查看>>
mysql asyn 示例
查看>>
数据库第1,2,3范式学习
查看>>
《Linux内核设计与实现》第四章学习笔记
查看>>
Docker 安装MySQL5.7(三)
查看>>
CSS: caption-side 属性
查看>>
CSS3中box-sizing的理解
查看>>
mysql导入source注意点
查看>>
linux下编译安装nginx
查看>>
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
Intellij idea创建javaWeb以及Servlet简单实现
查看>>
代理网站
查看>>
Open multiple excel files in WebBrowser, only the last one gets activated
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>