From b21ebd149b03246057a3fda24136942cc29ab36b Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 3 Feb 2016 21:58:29 +0100 Subject: [PATCH] Changed: Updated launchProgramAndWaitForResult to support .bat files --- code/nel/src/misc/common.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index d586e4638..6ec0261f6 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -878,8 +878,22 @@ sint launchProgramAndWaitForResult(const std::string &programName, const std::st SetEnvironmentVariable( SE_TRANSLATOR_IN_MAIN_MODULE, NULL ); } - string arg = " " + arguments; - BOOL ok = CreateProcessA(programName.c_str(), (char*)arg.c_str(), NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE | CREATE_NO_WINDOW, NULL, NULL, &si, &pi); + const char *sProgramName = programName.c_str(); + + std::string args; + + // a .bat file must have first parameter to NULL and use 2nd parameter to pass filename + if (CFile::getExtension(programName) == "bat") + { + sProgramName = NULL; + args = "\"" + programName + "\" " + arguments; + } + else + { + args = arguments; + } + + BOOL ok = CreateProcessA(sProgramName, (char*)args.c_str(), NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE | CREATE_NO_WINDOW, NULL, NULL, &si, &pi); if (ok) {