Qt 实现对外部(第三方)程序是否已经启动的判断、启动及关闭

本文通过QProcess类详细介绍了如何在Qt环境下判断、启动和关闭外部(第三方)程序。利用QProcess与Windows系统命令tasklist、taskkill进行交互,实现了程序状态的检查和控制。
摘要由CSDN通过智能技术生成

一、概述
          本文将介绍通过QProcess类实现对外部应用程序是否已经启动的判断、启动和关闭。

二、判断外部程序是否已经启动
        Qt在windows下实际上是通过QProcess对象启动windows自带的tasklist程序来读取正在系统中运行的所有程序的信息(其中包括了程序名等等),然后通过比较读取出来的所有信息中是否包含有我们想要判断的程序的程序名来实现的,如下代码中,在start函数的第一个参数是应用程序名,第二个参数是参数一程序启动时输入的启动参数,/FI表示利用其后的条件筛选出所有符合条件的进程信息,imagename eq  appName 表示匹配所有字符串为appName的信息。完整参数为 /FI imagename eq appName,表示筛选出包含有appName字符串的所有进程。(对于tasklist不多做介绍,百度上有很多详细的介绍)

bool CheckAppStatus(const QString &appName) 
{
#ifdef Q_OS_WIN      //表示如果在windows下
QProcess process;
process.start("tasklist" ,QStringList()<<"/FI"<<"imagename eq " +appName);   //执行tasklist程序
process.waitForFinished(5000);    //阻塞5秒等待tasklist程序执行完成,超过五秒则直接返回
QString outputStr = QString::fromLocal8Bit(process.readAllStandardOutput()); //把tasklist程序读取到的进程信息输出到字符串中
if(outputStr.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值