我的QT版本是4.5的
我想用QProcess去启动一个命令行窗口,运行命令行中的一个命令,运行完后关闭进程
比如dir /?
我该怎么写呢?菜鸟求助
QProcess p;
QStringList slist;
slist<<" /c"<<"dir /?";
p.execute("c:\\windows\\system32\\cmd.exe" ,slist);
我是这样写的,但是在调用的时候发现进程一直没有结束,请问我是不是写错了?
在读取cmd的输出时,我先等待while(!proc->waitForFinished());
直到进程退出了,再读取预先由ready**信号触发的槽函数里已经读取出来的字符串。
请问这样有问题吗?
- proc = new QProcess;
- connect(proc, SIGNAL(readyReadStandardOutput()), this, SLOT(readAllStdout()));
- connect(proc, SIGNAL(readyReadStandardError()),this, SLOT(readAllStderr()));
- proc->execute(str,arg);
- void HiProcess::readAllStdout()
- {
- stdStr += proc->readAllStandardOutput().data();
- }
- void HiProcess::readAllStderr()
- {
- errStr += proc->readAllStandardError().data();
- }
- QString HiProcess::readOutput()
- {
- while(!proc->waitForFinished());
- return QString(stdStr + errStr);
- }