Qt 检测第三方软件是否运行、杀死第三方进程

前言

在 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来执行命令,代码结构非常简单,可以直接拿来使用。

你可能感兴趣的:(Qt)