QT开发中文网

linux使用QProcess查看某个程序是否启动,没启动设置启动

在Linux上,可以使用QProcess类来查看某个程序是否已经启动,并设置启动。下面是一个示例代码:

#include <QCoreApplication>
#include <QProcess>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString program = "program_name";  // 要检测的程序名称

    // 创建一个 QProcess 对象
    QProcess process;

    // 执行 shell 命令 ps ax | grep program_name 来查找该程序是否正在运行
    process.start("ps", QStringList() << "ax");
    process.waitForFinished();
    QString output = process.readAllStandardOutput();

    if (output.contains(program)) {
        qDebug() << "程序已经启动";
        // TODO: 程序已经启动的处理逻辑
    } else {
        qDebug() << "程序未启动,开始启动...";
        // TODO: 启动程序的逻辑
        QProcess::startDetached("program_path");  // 替换为实际的可执行文件路径和参数
    }

    return a.exec();
}

以上代码会通过执行 ps ax 命令并使用 grep 过滤指定的程序名,然后根据输出结果判断该程序是否已经启动。如果没有启动,则可以使用 QProcess::startDetached() 方法来启动该程序。请将 program_name 替换为要检测的程序名,将 program_path 替换为要启动的程序路径和参数。

需要注意的是,在此方法中只能检测到进程名中包含指定程序名的进程,如果存在多个同名的进程或进程名包含其他字符,请根据实际情况进行适当的处理。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=5714

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?