只允许程序运行一个实例

来源:互联网 发布:2017网络互助平台 编辑:程序博客网 时间:2024/05/03 05:25

有两类方法:

第一类:

       判断进程是否存在,如果存在则直接退出。

第二类:

       最简单也是最准确的方法,用命名的互斥对象。

       代码如下:

       (m_hMutex可以是成员变量,全局变量或者是局部变量)

m_hMutex = CreateMutex( NULL, FALSE, _T("NOT_IMIDE") );

       if ( m_hMutex )

       {

              //183为创建的文件已存在,或者是ERROR_ALREADY_EXISTS

              if ( GetLastError() == 183 )   

              {

                     return FALSE;

              }

       }

      

       在调用CreateMutex函数创建一个命名的互斥对象后,如果其返回值是一个有效的举兵,那么可以接着调用GetLastError函数,如果该函数返回的是ERROR_ALREADY_EXISTS,(有时候可能不是这个错误,而是183),就表明先前已经创建了这个命名对象。

 

原创粉丝点击