///////////////////////////////////////////////////////////////////////////////
// LameXP - Audio Encoder Front-End
-// Copyright (C) 2004-2010 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
#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
}
}
}
+
+ m_firstLaunch = true;
}
/*
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");
{
SetPriorityClass(process.pid()->hProcess, IDLE_PRIORITY_CLASS);
}
+
lock.unlock();
- emit statusUpdated(0);
+
+ if(m_firstLaunch)
+ {
+ emit statusUpdated(0);
+ m_firstLaunch = false;
+ }
+
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;
}