diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sdk/console.h | 3 | ||||
-rw-r--r-- | src/sdk/console_win.cpp | 13 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/sdk/console.h b/src/sdk/console.h index 0ab6e4743..378a37e60 100644 --- a/src/sdk/console.h +++ b/src/sdk/console.h @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -44,6 +44,7 @@ public: private: bool parentConsole; + bool newConsoleCreated; std::ofstream m_newCout; std::ofstream m_newCerr; diff --git a/src/sdk/console_win.cpp b/src/sdk/console_win.cpp index f3226bc60..978159612 100644 --- a/src/sdk/console_win.cpp +++ b/src/sdk/console_win.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -74,7 +74,9 @@ static bool isRedirected(HANDLE stdHandle) */ Console::Console() : m_oldCout(nullptr), - m_oldCerr(nullptr) + m_oldCerr(nullptr), + parentConsole(false), + newConsoleCreated(false) { bool isCoutRedirected = isRedirected(GetStdHandle(STD_OUTPUT_HANDLE)); bool isCerrRedirected = isRedirected(GetStdHandle(STD_ERROR_HANDLE)); @@ -83,6 +85,7 @@ Console::Console() : // try to use parent console. else launch & set up new console parentConsole = AttachConsole(ATTACH_PARENT_PROCESS); if (!parentConsole) { + newConsoleCreated = true; AllocConsole(); HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); if (handle != INVALID_HANDLE_VALUE) { @@ -119,11 +122,11 @@ Console::Console() : Console::~Console() { - if (!parentConsole) { - system("PAUSE"); - } else { + if (parentConsole) { // simulate enter key to switch to boot prompt PostMessage(GetConsoleWindow(), WM_KEYDOWN, 0x0D, 0); + } else if (newConsoleCreated) { + system("PAUSE"); } if (m_oldCerr) |