如何判断程序是否重复运行的几种方法

如何判断程序是否重复运行的几种方法判断程序的实例是否已经启动,无非是通过设立某个标识,让下次启动程序时知道该实例已经运行。嗯,可是在WIN32中每个进程都有自已独立的空间,那么如何处理呢,下面提供两种

如何判断程序是否重复运行的几种方法 判断程序的实例是否已经启动,无非是通过设立某个标识,让下次启 动程序时知道该实例已经运行。嗯,可是在WIN32中每个进程都有自 已独立的空间,那么如何处理呢,下面提供两种方案: 方案一,使用内核对象 因为内核对象是可以跨进程存在的,因此我们可以通过创建一个命名 互斥体(Mutex)内核对象来判断,当用同一个名字的来创建Mutex时, CreateMutex会返回一个指向该互斥体的句柄,但是GetLastError 会得到ERROR_ALREADY_EXISTS的返值。因此我们就可以判断程序已 有一个实例在运行。下面是其中的关键代码 m_hmutex =::CreateMutex( NULL,FALSE,appID); if(m_hmutex == NULL) return FALSE; // if( ::GetLastError() == ERROR_ALREADY_EXISTS )// { return FALSE; }

腾讯文库如何判断程序是否重复运行的几种方法