问题
如果直接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();