zoukankan      html  css  js  c++  java
  • C++ 多用户模式下同一个exe只能运行一次

    1、有时候会遇到多用户模式下一不小心会运行多个exe的问题,所以程序中添加一下代码解决这个问题:

    BOOL CtestDialogApp::InitInstance()
    {
        char exeFullPath[MAX_PATH] = {0}; // MAX_PATH在API中有定义
        int len=GetModuleFileNameA(NULL,
                exeFullPath, //应用程序的全路径存放地址
                MAX_PATH);
        std::string path = exeFullPath; //配置文件名
        path = path.substr(path.rfind("\")+1);
    
        HANDLE hMutex = ::CreateMutex(NULL,TRUE,("Global\"+ path).c_str());
    
        if(GetLastError() == ERROR_ALREADY_EXISTS || ERROR_ACCESS_DENIED == GetLastError())
        {
            MessageBox(NULL,"Has been running!","MT4 Manager Interface", MB_ICONEXCLAMATION );
            return FALSE;
        }
      return FALSE;
    }
    

      注意:

    如果不加"Global\"只能实现同一个用户下只能运行一个exe的情况
  • 相关阅读:
    JS高级拖拽
    JS高级Date类
    JS高级闭包
    JS笔记整理
    JS高级解决函数内的this指向
    JS高级事件委托
    JS高级 事件对象
    JS中级面向对象
    JS中级
    JS高级
  • 原文地址:https://www.cnblogs.com/alinh/p/9475653.html
Copyright © 2011-2022 走看看