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();  
    

      

    这样就实现了程序的单例模式,即只允许运行一个程序实例。
  • 相关阅读:
    2. Add Two Numbers
    8. String to Integer (atoi)
    18. 4Sum
    15. 3Sum
    1. Two Sum
    227. Basic Calculator
    7. Reverse Integer
    PostMessage和SendMessage的区别
    Date Time Picker控件
    git 设置和取消代理
  • 原文地址:https://www.cnblogs.com/JczmDeveloper/p/3557645.html
Copyright © 2011-2022 走看看