比如说用户A登录进来运行了我的软件,然后切换到B用户,再运行的话则提示只能运行一个实例。对于一个用户,我们可以用全局命名mutex来解决,但是多个登录用户呢?谢谢!

解决方案 »

  1.   

    是不是可以写INI文件,设个标志,启动时读下,值为0就继续,为1说明有启动就关掉。在关闭时再写另一个值,表示是正常关闭。在启动时如果这个值不正常就不管那个是否启动的值
      

  2.   

    用文件的方式解决。
    当程序运行的时候,读取一个tmp文件,如果不存在,则创建这个tmp文件,并锁定。如果存在了,并且不能打开。就是已经有一个实例在运行了。
    如果存在了,能打开,就是以前运行过程序,但是实例已经结束了。
    最后可选的是:在结束运行的时候,删除这个tmp文件(不删除也可以,用以判断以前是否使用过,里面也可以写些自己的内容)。
      

  3.   

    应该可以通过监控Session的变化来做WTSGetActiveConsoleSessionId()......具体怎么做你得搜索下,没做过...
    帮你顶了......
      

  4.   

    CreateMutexEx(NULL, TEXT(Global\\text), NULL, NULL);
    无效?