一、检测进程是否存在
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