【发布时间】:2012-11-12 11:35:32
【问题描述】:
我正在尝试调用 DOS 命令:subst 和 QProcess:
QProcess process;
int returnCode=process.execute(QString("subst " + DLetter+" "+mountPath));
qDebug()<<"returnCode"<<returnCode;
if (returnCode==0){
qDebug()<<"Mount "<<QString("subst " + DLetter+" "+mountPath)
<<"error"<<process.errorString()<<"id"<<process.pid();
process.waitForFinished();
...
}else
qDebug()<<" mounting folder failed "<<process.errorString();
我的问题是:打电话给execute() 和waitForFinished() 就够了吗?调用 execute() 而不是 start 是否安全?因为我遇到了start() 的问题:它并非在所有情况下都有效(它适用于安装,但不适用于卸载文件夹)。
我们将不胜感激。
【问题讨论】:
-
我觉得你需要直接调用cmd。类似于: cmd /c subst X: c:\\Test
-
@drescherjm 我需要从我的应用程序执行我的命令 :)
-
将该命令放入您的 process.execute 中,而不是您拥有的。
-
是的,我已经有了,
QString("subst " + DLetter+" "+mountPath)是命令。 -
我不是这个意思。该命令中的 cmd /c 在哪里?