Выпуск
Как запустить исполняемый файл с параметрами, передаваемыми на него из программы на C++?
Решение
Использование ShellExecuteEx
и SHELLEXECUTEINFO
Выпуск
Как получить возвращаемое значение из него?
Решение
Использования GetExitCodeProcess
и exitCode
Основных вещи, чтобы знать
Если вы хотите ждать, пока процесс, который обработки внешнего еха, закончено, то нужно использовать WaitForSingleObject
bool ClassName::ExecuteExternalExeFileNGetReturnValue(Parameter ...)
{
DWORD exitCode = 0;
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = _T("open");
ShExecInfo.lpFile = _T("XXX.exe");
ShExecInfo.lpParameters = strParameter.c_str();
ShExecInfo.lpDirectory = strEXEPath.c_str();
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
if(WaitForSingleObject(ShExecInfo.hProcess,INFINITE) == 0){
GetExitCodeProcess(ShExecInfo.hProcess, &exitCode);
if(exitCode != 0){
return false;
}else{
return true;
}
}else{
return false;
}
}
Reference to know more detail
как вы справляетесь с пунктом метров с пробелами в них? (например, «arg 1», «arg 2») – Bill