前言
在 Qt 开发中,有时候想要检测某个软件是否正在运行,或者想通过在代码中杀死某个指定的进程名称,调用 Windows 原生接口可以实现相应的需求,也可以通过在终端中通过命令行的方式来实现,而这里要分享的是通过 Qt 执行终端命令来实现该功能,这种方式会比较简单,代码量也会非常少。
正文
检测第三方软件是否运行
bool CheckAppRunningStatus(const QString &appName)
{
#ifdef Q_OS_WIN
QProcess* process = new QProcess;
process->start(“tasklist” ,QStringList()<<”/FI”<<”imagename eq “ +appName);
process->waitForFinished();
QString outputStr = QString::fromLocal8Bit(process->readAllStandardOutput());
if(outputStr.contains(appName)){
return true;
}
else{
return false;
}
#endif
}
强制退出第三方软件
void KillAppProcess(const QString &appName)
{
#ifdef Q_OS_WIN
QProcess p;
QString c = “taskkill /im “ + appName + “ /f”;
p.execute(c);
p.close();
#endif
}
以上终端命令都是通过查阅相关资料得知的,然后通过 Qt 的QProcess来执行命令,代码结构非常简单,可以直接拿来使用。