#include "Tool_Abstract.h"
+#include "Global.h"
+
#include <QProcess>
#include <QMutex>
#include <QMutexLocker>
#include <QLibrary>
-#include <Windows.h>
+#include <QProcessEnvironment>
+#include <QDir>
/*
* Win32 API definitions
static AssignProcessToJobObjectFun AssignProcessToJobObjectPtr = NULL;
QMutexLocker lock(m_mutex_startProcess);
-
emit messageLogged(commandline2string(program, args) + "\n");
+ QProcessEnvironment env = process.processEnvironment();
+ if(env.isEmpty()) env = QProcessEnvironment::systemEnvironment();
+ env.insert("TEMP", QDir::toNativeSeparators(lamexp_temp_folder2()));
+ env.insert("TMP", QDir::toNativeSeparators(lamexp_temp_folder2()));
+ process.setProcessEnvironment(env);
+
if(!AssignProcessToJobObjectPtr)
{
QLibrary Kernel32Lib("kernel32.dll");
return true;
}
+ emit messageLogged("Process creation has failed :-(");
+ QString errorMsg= process.errorString().trimmed();
+ if(!errorMsg.isEmpty()) emit messageLogged(errorMsg);
+
+ process.kill();
+ process.waitForFinished(-1);
return false;
}