bool checkOnly()
{
// 创建互斥量
HANDLE m_hMutex = CreateMutex(NULL, FALSE, "Process");
// 检查错误代码
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
// 如果已有互斥量存在则释放句柄并复位互斥量
CloseHandle(m_hMutex);
QMessageBox::information(NULL, QString("提示"), QString("程序已经在运行中,不能重复启动!"), MB_OK + MB_ICONWARNING);
m_hMutex = NULL;
// 程序退出
return false;
}
else
return true;
}
Process为互斥量,通过它来区分是否为同一个程序
推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/VsFMs