#include <QCoreApplication>
#include <Windows.h>
bool checkOne()
{
// 创建互斥量
HANDLE m_hMutex = CreateMutex(NULL, FALSE, L"fortest_abc123" );
// 检查错误代码
if (GetLastError() == ERROR_ALREADY_EXISTS) {
// 如果已有互斥量存在则释放句柄并复位互斥量
CloseHandle(m_hMutex);
m_hMutex = NULL;
// 程序退出
return false;
}
else
{
return true;
}
}
int main(int argc, char *argv[])
{
if(!checkOne()) {
return 0;
}
QCoreApplication a(argc, argv);
return a.exec();
}
原文链接:Qt防止本程序多次启动