【问题标题】:Is there a way to allow only one instance of an existing win application? [closed]有没有办法只允许现有 win 应用程序的一个实例? [关闭]
【发布时间】:2012-05-12 12:15:30
【问题描述】:

是否可以只允许任何 Windows 应用程序的一个实例?如果是,怎么做?

谢谢!

【问题讨论】:

    标签: windows


    【解决方案1】:

    您可以创建一个named mutex。在应用程序启动时,通常是 WinMain() 函数,如果您成功拥有互斥锁,则意味着该实例是第一个实例,否则您可以标记错误或使用其他方式激活第一个应用程序。

    HANDLE hMutex = CreateMutex(NULL, FALSE, "MY_MUTEX_123_UNIQUE_STRING");
    if (ERROR_ALREADY_EXISTS == GetLastError())
        std::cout<<"This is not the first instance\n";
    else
        std::cout<<"This is first instance\n";
    

    【讨论】:

    • 认为问题是关于多次启动同一个可执行文件。我不确定也不会投反对票,因为这个问题非常不精确。
    猜你喜欢
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    相关资源
    最近更新 更多