QProcess的使用

 

1、启动外部程序一体式:start()外部程序启动后,随着界面主程序的退出。

      void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite)         

QProcess *process=new QProcess;
process->start("C:/Prject/Yulei.exe", QStringList("C:/Prject/Yulei.exe"));
process->waitForStarted();
process->waitForFinished();
QString errOut=process->readAllStandardError();
QString allOutStr=process->readAllStandardOutput();

注:参数二、三均可省略;

       当只有参数一时,exe文件路径不能带中文、空格;

       当有参数二时,路径可含空格;    

       waitForFinished的超时机制,Qt界面主线程的开启QProcess的等待时长只有30秒。当超过默认时限,无论外部程序是否运行完,QProcess 直接接收外部程序输出结果(可能是执行的控制台输出信息),即空的输出信息。当外部程序计算复杂时,因时限影响,导致我们无法接受正常返回信息。这时需要设置参数即process->waitForFinished(-1)直到执行完成。

2、启动外部程序分离式:startDetached()外部程序启动后,不会随着界面主程序的退出而退出。

     void QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(),  qint64 * pid = 0)

3、关闭后台进程 。

 //关闭后台Yulei.exe进程,阻塞式运行,一直占用cpu,成功返回0,失败返回1

 int reInt = QProcess::execute("taskkill /f /im Yulei.exe"); 
 qDebug()<<"reInt:"<<reInt;

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值