1 在同一台电脑上限制只能运行一个程序,防止软件多开

在开发Duilib程序时,我们经常需要限制在一个电脑上只能运行一个程序,防止软件多开,避免因软件多开导致出现的问题。

示例代码:

#include "stdafx.h"

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    /*----- 判断当前程序是否有实例在运行 -----*/
    HANDLE hCustomerClientMutex = CreateMutex(NULL, TRUE, TEXT("CustomerClient_Mutex"));
    if (hCustomerClientMutex == NULL)
    {
        MessageBox(NULL, "运行时出错", NULL, NULL);
        return -1;
    }
    //已存在互斥量说明已有示例在运行
    if (ERROR_ALREADY_EXISTS == GetLastError())
    {
        CloseHandle(hCustomerClientMutex);
        hCustomerClientMutex = NULL;
        MessageBox(NULL, "本程序已有实例在运行,请不要多开程序", NULL, NULL);
        return -1;
    }

    // 如果没有检测到另外的实例才进行Duilib窗口初始化操作
    // 在此处加入Duilib初始化代码
}