From 3ab57eea887b0e6825ff8cc77699350a6c53cc20 Mon Sep 17 00:00:00 2001 From: peri4 Date: Tue, 25 Apr 2023 17:15:00 +0300 Subject: [PATCH] PIProcess exit code for Windows --- libs/main/system/piprocess.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/main/system/piprocess.cpp b/libs/main/system/piprocess.cpp index e3534e3c..a43311fe 100644 --- a/libs/main/system/piprocess.cpp +++ b/libs/main/system/piprocess.cpp @@ -183,10 +183,14 @@ void PIProcess::startProc(bool detached) { detached ? DETACHED_PROCESS /*CREATE_NEW_CONSOLE*/ : 0, // Creation flags 0, // envcc, // Use environment wd.isEmpty() ? 0 : wd.data(), // Use working directory - &(PRIVATE->si), // Pointer to STARTUPINFO structure + &(PRIVATE->si), // Pointer to STARTUPINFO structure &(PRIVATE->pi))) // Pointer to PROCESS_INFORMATION structure { - if (!detached) WaitForSingleObject(PRIVATE->pi.hProcess, INFINITE); + if (!detached) { + WaitForSingleObject(PRIVATE->pi.hProcess, INFINITE); + DWORD code = -1; + if (GetExitCodeProcess(PRIVATE->pi.hProcess, &code) != 0) exit_code = code; + } CloseHandle(PRIVATE->pi.hThread); CloseHandle(PRIVATE->pi.hProcess); } else