来自: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