一、检测进程是否存在
bool checkProcessByQProcess(const QString &strExe) { bool bResult = false; QProcess tasklist; tasklist.start("tasklist", QStringList() << "/NH" << "/FO" << "CSV" << "/FI" << QString("IMAGENAME eq %1").arg(strExe)); tasklist.waitForFinished(); QString strOutput = tasklist.readAllStandardOutput(); if (strOutput.startsWith(QString("\"%1").arg(strExe))) { bResult = true; } return bResult; }
二、杀死进程
void killProcessByQProcess(const QString &strExe) { QString strKill = QString("taskkill /im %1 /f").arg(strExe); if (0 != QProcess::execute(strKill)) { qDebug() << "killProcess error" << strExe; } }
三、使用方法
if (checkProcessByQProcess("XXX.exe")) killProcessByQProcess("XXX.exe");
推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/VsFMs