Windows上限制程序单实例运行

创建互斥锁

在程序运行的最开始处,创建一个命名的互斥锁:

<!-- lang: cpp -->
HANDLE mutex = ::CreateMutex(NULL, FALSE, L"Mutex_Name");
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
    MessageBox(NULL, L"应用程序已经在运行!", 
        L"唯一性测试", MB_OK|MB_ICONERROR);
    if (mutex != NULL)
    {
        CloseHandle(mutex);
        mutex = NULL;
    }
    exit(0);
}

释放互斥锁

在程序退出之前,记得释放互斥锁资源:

<!-- lang: cpp -->
CloseHandle(mutex);
mutex = NULL;

你可能感兴趣的:(instance,mutex,single)