QT使用bat调用外部exe的经验

问题

如果直接system(bat,param)或是Winexec(bat,param)都会造成阻塞式调用,大概就是关闭cmd后,程序就会自动崩溃(好久没用进程导致解决这个问题的时候真的是一脸懵)

解决方法

	fileLEdt=ui->address_text;
    QString address=fileLEdt->text();
    QStringList arguments;
    arguments << address.toLatin1().data();
    QString strlnfo;
    QProcess p(nullptr);
    QString toolpath;
    toolpath = "D:/PeachDemo/source/bat/1-play.bat";//要调用的脚本文件
    p.start(toolpath,arguments);//运行脚本文件
    if(p.waitForFinished()){//等待脚本运行完成,超时时间默认是3000s,超时返回0,正常返回
        strlnfo ="完成!";
    }else{
        strlnfo = "bat运行错误! ";
    }
    qDebug() <<p.errorString();
    qDebug() <<p.errorString();
    p.close();
    qDebug()<<"doc killed";
    qDebug()<<"state"<<p.state();

特别感谢:
QT之 QProcess与外部程序的调用
QT运行外部程序
QT调用外部程序的几种方式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值