mfc HackerTools防止程序双开

来自:https://github.com/TonyChen56/HackerTools

1 HANDLE hMutex = CreateMutexA(NULL, FALSE, "GuiShou");
2 if (hMutex)
3 {
4     if (GetLastError() == ERROR_ALREADY_EXISTS)
5     {
6         MessageBox(L"请勿双开本程序 即将退出");
7         ExitProcess(-1);
8     }
9 }

HANDLE
WINAPI
CreateMutexA(
_In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes,
_In_ BOOL bInitialOwner,
_In_opt_ LPCSTR lpName
);

创建或者打开一个互斥对象

第一个参数是一个指向SECURITY_ATTRIBUTES结构体的指针,一般的情况下,可以是nullptr。

第二个参数类型为BOOL,表示互斥锁创建出来后是否被当前线程持有。

第三个参数类型为字符串(const TCHAR*),是这个互斥锁的名字,如果是nullptr,则互斥锁是匿名的。

msdn:https://docs.microsoft.com/zh-cn/windows/win32/api/synchapi/nf-synchapi-createmutexa