zoukankan      html  css  js  c++  java
  • 如何让Windows程序只运行一个程序实例?

    要实现VC++或者MFC只运行一个程序实例,一般采用互斥量来实现,即首先用互斥量封装一个只运行一个程序实例的函数接口:

    HANDLE hMutex = NULL;
    
    void MainDlg::RunSingleInstance()
    {
    	hMutex = CreateMutex(NULL,FALSE,TEXT("Single Instance Demo"));
    	if (hMutex)
    	{
    		if(ERROR_ALREADY_EXISTS == GetLastError())
    		{
    			// 已经有实例在运行了,发送错误报警
    			::MessageBox(NULL,L"已经有实例在运行了",L"已经有实例在运行了",MB_OK);
    			exit(1);
    		}
    	}
    }
    

      接着就可以通过调用上面封装的接口函数来实现程序的单例运行模式,比如在Main.cpp里面 实现: 

     

    MainDlg mainDlg;
    mainDlg.RunSingleInstance();  
    

      

    这样就实现了程序的单例模式,即只允许运行一个程序实例。
  • 相关阅读:
    arcgis 线转面
    CAD 命令
    一台服务器挂多个网站
    请教:gridview
    转折
    网站开发标准
    [导入]简单网站开发
    过年了!
    web.config的问题
    java 计算程序执行时间
  • 原文地址:https://www.cnblogs.com/JczmDeveloper/p/3557645.html
Copyright © 2011-2022 走看看