MFC 问题汇总(02)(单实例启动)

问题描述

需求:客户端同时只允许有一个实例在运行!

解决方案

方案一:添加互斥量

BOOL CVeoApp::InitInstance()
{
    //单例进程模式  
    HANDLE hMutex=::CreateMutex(NULL,TRUE,_T("AtlasSegment"));     
    if(hMutex!=NULL)     
    {     
        if(GetLastError()==ERROR_ALREADY_EXISTS)     
        {     
            // 向已经启动的进程传递参数、指令
            LRESULT copyDataResult;  //copyDataResult has value returned by other app   
            CWnd *pOtherWnd = CWnd::FindWindowW(NULL, _T("Your Project Name"));

            if (pOtherWnd)  
            {  
                // TODO 实例已经存在时处理逻辑
            }  
            CloseHandle(hMutex); 
            return   FALSE;     
        }     
    } 
    …… ……
}  

方案二:
检测文件a存不存在:存在,退出程序;不存在创建文件-程序运行……删除文-程序退出
方案三:
检测socket端口a是否被占用;占用,退出程序;没有占用-监听socket端口a-程序运行……释放端口-程序退出
方案四:
检测注册表a位置是否写入数据b;已经写入数据b,退出程序;没有写入,在注册表a位置写入数据b-程序运行……改回原值-程序退出

转载链接:http://blog.csdn.net/chenlu5201314/article/details/47149993


Zoom云视频会议1
Zoom云视频会议2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值