提交 4861ce02 编写于 作者: 丁劲犇's avatar 丁劲犇 😸

指定Path的时候,不能破坏了相对路径的依赖性。

上级 761538f5
...@@ -65,13 +65,12 @@ bool DlgWrpScript::cmd_start() ...@@ -65,13 +65,12 @@ bool DlgWrpScript::cmd_start()
lstCmds << ui->lineEdit_parasec->text(); lstCmds << ui->lineEdit_parasec->text();
lstCmds << m_lstArgs; lstCmds << m_lstArgs;
QFileInfo cmdinfo(cmdline); QFileInfo cmdinfo(cmdline);
m_process->setProgram(cmdinfo.absoluteFilePath());
//设置当前路径 //设置当前路径
if (ui->lineEdit_workingDir->text().length()) if (ui->lineEdit_workingDir->text().length())
m_process->setWorkingDirectory(ui->lineEdit_workingDir->text()); m_process->setWorkingDirectory(ui->lineEdit_workingDir->text());
else else
m_process->setWorkingDirectory(cmdinfo.absolutePath()); m_process->setWorkingDirectory(cmdinfo.absolutePath());
m_process->setProgram(cmdline);
//准备环境变量 //准备环境变量
QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
const QString newEnv = ui->plainTextEdit_extraEnv->toPlainText(); const QString newEnv = ui->plainTextEdit_extraEnv->toPlainText();
......
...@@ -125,8 +125,12 @@ bool DlgWrpStdio::cmd_start() ...@@ -125,8 +125,12 @@ bool DlgWrpStdio::cmd_start()
return false; return false;
const QString exe = ui->lineEdit_prgPath->text(); const QString exe = ui->lineEdit_prgPath->text();
const QString cmd = ui->lineEdit_parasec->text(); const QString cmd = ui->lineEdit_parasec->text();
QFileInfo cmdinfo(exe); QFileInfo cmdinfo(exe);
QString command = "\"" + cmdinfo.absoluteFilePath() +"\"";
if (cmd.size())
command += " " + cmd;
//设置当前路径 //设置当前路径
if (ui->lineEdit_workingDir->text().length()) if (ui->lineEdit_workingDir->text().length())
m_process->setWorkingDirectory(ui->lineEdit_workingDir->text()); m_process->setWorkingDirectory(ui->lineEdit_workingDir->text());
...@@ -155,9 +159,6 @@ bool DlgWrpStdio::cmd_start() ...@@ -155,9 +159,6 @@ bool DlgWrpStdio::cmd_start()
env.insert(skey,sval); env.insert(skey,sval);
} }
m_process->setProcessEnvironment(env); m_process->setProcessEnvironment(env);
QString command = exe;
if (cmd.size())
command += " " + cmd;
m_process->startCommand(command); m_process->startCommand(command);
return true; return true;
} }
......
...@@ -69,9 +69,9 @@ bool taskNode::cmd_start(QObject * node,QString cm, QStringList paras) ...@@ -69,9 +69,9 @@ bool taskNode::cmd_start(QObject * node,QString cm, QStringList paras)
const QString cmdline =cm; const QString cmdline =cm;
QFileInfo cmdinfo(cm); QFileInfo cmdinfo(cm);
QStringList lstCmds = paras; QStringList lstCmds = paras;
m_process->setProgram(cmdline); m_process->setProgram(cmdinfo.absoluteFilePath());
m_process->setArguments(lstCmds);
m_process->setWorkingDirectory(cmdinfo.absolutePath()); m_process->setWorkingDirectory(cmdinfo.absolutePath());
m_process->setArguments(lstCmds);
m_process->start(); m_process->start();
QString cmdlinestr = cmdline; QString cmdlinestr = cmdline;
......
...@@ -48,8 +48,10 @@ void taskBusPlatformFrm::load_modules(QStringList newfms) ...@@ -48,8 +48,10 @@ void taskBusPlatformFrm::load_modules(QStringList newfms)
{ {
QProcess proc; QProcess proc;
QFileInfo infocmd(newfm); QFileInfo infocmd(newfm);
proc.setProgram(infocmd.absoluteFilePath());
proc.setWorkingDirectory(infocmd.absolutePath()); proc.setWorkingDirectory(infocmd.absolutePath());
proc.start(newfm,QStringList()<<"--information"); proc.setArguments(QStringList()<<"--information");
proc.start();
array.append(proc.readAll()); array.append(proc.readAll());
proc.waitForFinished(10000); proc.waitForFinished(10000);
array.append(proc.readAll()); array.append(proc.readAll());
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <QTextStream> #include <QTextStream>
#include <QProcess> #include <QProcess>
#include <QAtomicInt> #include <QAtomicInt>
#include <QDir>
#include <stdio.h> #include <stdio.h>
#include "core/taskcell.h" #include "core/taskcell.h"
#include "core/taskproject.h" #include "core/taskproject.h"
...@@ -41,6 +42,7 @@ using namespace TASKBUS; ...@@ -41,6 +42,7 @@ using namespace TASKBUS;
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
QCoreApplication a(argc, argv); QCoreApplication a(argc, argv);
QDir::setCurrent(a.applicationDirPath());
init_client(); init_client();
//init ProfileLog //init ProfileLog
profile_log::init(); profile_log::init();
...@@ -193,8 +195,10 @@ void load_modules(QStringList newfms, taskCell * cell) ...@@ -193,8 +195,10 @@ void load_modules(QStringList newfms, taskCell * cell)
{ {
QProcess proc; QProcess proc;
QFileInfo infocmd(newfm); QFileInfo infocmd(newfm);
proc.setProgram(infocmd.absoluteFilePath());
proc.setArguments(QStringList()<<"--information");
proc.setWorkingDirectory(infocmd.absolutePath()); proc.setWorkingDirectory(infocmd.absolutePath());
proc.start(newfm,QStringList()<<"--information"); proc.start();
proc.waitForFinished(10000); proc.waitForFinished(10000);
array.append(proc.readAll()); array.append(proc.readAll());
proc.kill(); proc.kill();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册