一、执行命令行命令
QProcess p;
QString binPath = "D:/apple.exe";
QStringList args;
args.append("-v");
args.append("-d")
p.setProcessChannelMode(QProcess::MergedChannels);
p.start(binPath, args);
if (!p.waitForFinished()) {
qDebug() << "cmd failed:" << p.errorString();
}
else {
QString out = QString(p.readAll());
qDebug() << "cmd success:" << out;
}
二、打开应用程序
QProcess process;
process.start("tasklist"); //加载进程列表
process.waitForFinished();
QByteArray result = process.readAllStandardOutput();
//程序未打开,则启动
if (-1 == result.indexOf("WXWork.exe")) {
//路径含空格做特殊处理
QString wxPath = "\"" + m_localWxPath + "\"";
process.startDetached(wxPath);
}
注:m_localWxPath = "C:\Program Files (x86)\WXWork\WXWork.exe"
对于程序路径中含有空格的,如果不做处理,那么QProcess不执行,可以做如上代码特殊处理