Qt程序只能执行一次
在main.cpp中文件中加入以下代码:
#include <windows.h>
bool Check()
{
// CreateMutex
HANDLE m_hMutex = CreateMutex(NULL, FALSE, L"www" );
//
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
// 如果已有互斥量存在则释放句柄并复位互斥量
CloseHandle(m_hMutex);
m_hMutex = NULL;
// 程序退出
return false;
}
else
{
return true;
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//程序只能执行一次
if(!Check())
{
return 0;
}
MainWindow w;
w.show();
return a.exec();
}
本文介绍了一种确保Qt应用程序仅能同时运行一个实例的方法。通过使用Windows API中的互斥量(Mutex)机制来检查和防止程序重复启动,有效避免了同一程序的多次执行。
395

被折叠的 条评论
为什么被折叠?



