From d6b377dca4f501d4528c6b3d2aa095d6a3a41b2b Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Tue, 24 Oct 2023 16:20:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20call=5Fcommand=20=E5=A4=96=E9=83=A8?= =?UTF-8?q?=E4=B8=AD=E6=96=AD=E6=97=B6=E4=B8=AD=E6=AD=A2=E8=BF=9B=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Controller/Platform/Win32IO.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/MaaCore/Controller/Platform/Win32IO.cpp b/src/MaaCore/Controller/Platform/Win32IO.cpp index 4f4ef3384d..d1b08de99d 100644 --- a/src/MaaCore/Controller/Platform/Win32IO.cpp +++ b/src/MaaCore/Controller/Platform/Win32IO.cpp @@ -208,12 +208,6 @@ std::optional asst::Win32IO::call_command(const std::string& cmd, bool recv } } - DWORD exit_ret = 0; - GetExitCodeProcess(process_info.hProcess, &exit_ret); - CloseHandle(process_info.hProcess); - CloseHandle(process_info.hThread); - CloseHandle(pipe_parent_read); - CloseHandle(pipeov.hEvent); if (recv_by_socket) { if (accept_pending) { Log.warn("cancel AcceptEx"); @@ -228,6 +222,16 @@ std::optional asst::Win32IO::call_command(const std::string& cmd, bool recv CloseHandle(sockov.hEvent); } + if (process_running) { + TerminateProcess(process_info.hProcess, 0); + } + + DWORD exit_ret = 0; + GetExitCodeProcess(process_info.hProcess, &exit_ret); + CloseHandle(process_info.hProcess); + CloseHandle(process_info.hThread); + CloseHandle(pipe_parent_read); + CloseHandle(pipeov.hEvent); return static_cast(exit_ret); }