diff --git a/win32.h b/win32.h index a4f1be3614d4d84e6d107df7efcd8d5c09a178a2..b2410f14edeb8c9fbfa0613baa75c7df78fe8134 100644 --- a/win32.h +++ b/win32.h @@ -75,7 +75,8 @@ inline DWORD daemon(const std::wstring& path, bool wait_app_exit = true, bool sh si.dwFlags |= STARTF_USESHOWWINDOW; si.wShowWindow = show ? SW_SHOW : SW_HIDE; PROCESS_INFORMATION pi; - BOOL bRet = CreateProcessW(NULL, (LPWSTR)(path.c_str()), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); + DWORD dwCreationFlags = show ? 0 : CREATE_NO_WINDOW; + BOOL bRet = CreateProcessW(NULL, (LPWSTR)(path.c_str()), NULL, NULL, FALSE, dwCreationFlags, NULL, NULL, &si, &pi); if (bRet) { WaitForSingleObject(pi.hProcess, wait_app_exit ? INFINITE : 0); DWORD dwExit;