qt中如何调用外部exe程序及如何判断调用的程序状态

1、如何调用外部exe程序

非阻塞模式

QProcess *myProcess = new QProcess(this);

QString program =  "D:\\WinPie.exe";

QStringList arguments;//传递到exe的参数

QString piex = QString::number(this->x());//int型转QString

QString piey = QString::number(this->y());//

arguments.append(piex);//把窗口的屏幕坐标x,传出

arguments.append(piey);// 把窗口的屏幕坐标y,传出

myProcess->start(program,arguments);//启动exe程序,同时传参。

外部程序exe的做法是:

在不需要获取调用传过来的参数的情况下,可以不用做额外操作。

如果需要解析传过来的参数的话。

#include <stdlib.h>

int main(int argc, char *argv[])

{

   该主函数中,argc是参数的个数,一般情况下为1

   argv[]是一个字符串数组,argv[0]中放的是该程序的路径,一般参数是从下标为1开始。

int pieX = 200;

    int pieY = 800;

    if(argv[1] !=nullptr && argv[2] != nullptr)

    {

        pieX = atol(argv[1]);//提取传进来的参数使用。

        pieY = atol(argv[2]); //把char*转成int。

    }

}

2、判断QProcess->start启动的程序的状态

使用myProcess->state() 函数,它有 QProcess::NotRunning,
QProcess::Running及QProcess::Starting三种状态。
 

你可能感兴趣的:(qt中如何调用外部exe程序及如何判断调用的程序状态)