From b21c1f900c55572917d64c5e208c3eb8850ffd18 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Sat, 23 Sep 2017 21:20:49 -0400 Subject: [PATCH] win: let UV_PROCESS_WINDOWS_HIDE hide consoles The existing UV_PROCESS_WINDOWS_HIDE flag only applies to executables linked to the WINDOWS subsystem. This allows CONSOLE subsystem applications to pop up a console window. This commit sets the CREATE_NO_WINDOW process flag when UV_PROCESS_WINDOWS_HIDE to prevent this behavior. Refs: https://github.com/nodejs/node/pull/15380 Refs: https://github.com/joyent/libuv/pull/627 Refs: https://github.com/libuv/libuv/issues/965 PR-URL: https://github.com/libuv/libuv/pull/1558 Reviewed-By: Ben Noordhuis Reviewed-By: Bartosz Sosnowski --- src/win/process.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/win/process.c b/src/win/process.c index 97b67ca5..764250e1 100644 --- a/src/win/process.c +++ b/src/win/process.c @@ -1058,15 +1058,18 @@ int uv_spawn(uv_loop_t* loop, startup.hStdOutput = uv__stdio_handle(process->child_stdio_buffer, 1); startup.hStdError = uv__stdio_handle(process->child_stdio_buffer, 2); + process_flags = CREATE_UNICODE_ENVIRONMENT; + if (options->flags & UV_PROCESS_WINDOWS_HIDE) { /* Use SW_HIDE to avoid any potential process window. */ startup.wShowWindow = SW_HIDE; + + /* Hide console windows. */ + process_flags |= CREATE_NO_WINDOW; } else { startup.wShowWindow = SW_SHOWDEFAULT; } - process_flags = CREATE_UNICODE_ENVIRONMENT; - if (options->flags & UV_PROCESS_DETACHED) { /* Note that we're not setting the CREATE_BREAKAWAY_FROM_JOB flag. That * means that libuv might not let you create a fully daemonized process