Qt调用外部程序QProcess
(1)使用startDetached或execute
使用QProcess类静态函数QProcess::startDetached(const QString &program, constQStringList &argument)或者QProcess::execute(const QString &program, const QStringList &argument);startDetached 函数不会阻止进程, execute会阻止,即等到这个外部程序运行结束才继续执行本进程。
例如执行:Shutdown.exe -t -s 3600
[html] view plain copy
QStringList list;
list<< “-t” << “–s” << “3600”;
QProcess::startDetached(“Shutdown.exe”,list);
// QProcess::execute(“Shutdown.exe”,list);
(2)创建QProcess,使用start函数
可以查看外部程序返回的数据,输出结果。
[html] view plain copy
QProcess *pProces = new QProcess(this);
connect(pProces, SIGNAL(readyRead()),this, SLOT(on_read()));
QStringList list;
pProces->start(“Shutdown.exe”, list);
void on_read()
{
QProcess pProces = (QProcess )sender();
QString result = pProces->readAll();
QMessageBox::warning(NULL, “”, result);
}
(3)执行的是程序,如route、ipconfig
[html] view plain copy
QProcess p(0);
p.start(“route”);
p.waitForStarted();
p.waitForFinished();
qDebug()<