Windows 程序防多开¶
在 Windows 上保证一个程序只有一个实例,禁止多开。
用 Mutex 实现¶
这个是比较常用的方法。程序启动时,创建一个命名的 Mutex,如果之前就存在,那么说明多开了,直接退出。
文档:CreateMutexA function (synchapi.h) - Win32 apps | Microsoft Learn
CreateMutex
返回内核对象的句柄,用完以后要调用 CloseHandle
释放它,减少内核对象的引用计数。
ReleaseMutex
是释放 Mutex 的所有权。这里只判断 Mutex 是否存在,不管所有权,所以不需要用这个函数。