很多应用程序仅允许一个实例运行,那么如何做到呢?下面介绍一种方法:
1.使用互斥对象实现;
在调用CreateMutex函数创建一个命名互斥对象的时候,如果返回值是一个有效句柄,就可以直接调用GetLastError函数;
如果返回值是ERROR_ALREADY_EXISTS就表明先前已经创建了这个命名互斥对象,因此就知道已经有一个应用程序实例
在运行了;
2.使用事件对象实现,原理一样;
在调用CreateEvent函数创建一个命名时间对象的时候,如果返回值是一个有效句柄,就可以直接调用GetLastError函数;
如果返回值是ERROR_ALREADY_EXISTS就表明先前已经创建过了;