Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-53833

Using QProcess::startDetached() on the console app on Windows causes cmd.exe window to be shown

XMLWordPrintable

    • Icon: Suggestion Suggestion
    • Resolution: Done
    • Icon: Not Evaluated Not Evaluated
    • 5.8.0
    • 5.5.1
    • Core: I/O
    • bec2fc19fd18768b16925597871c77a61e716abd

      Many applications of KDE on Windows project with graphical interface have the following issue: when they start a console process (that is, compiled with /SUBSYSTEM:CONSOLE) using QProcess::startDetached(), it doesn't run in the background, but its console windows pops up. After the discussion [1] we nailed the problem down to Qt.

      Windows code for QProcess::start() checks if the caller app have a console window using GetConsoleWindow() system function. If it returns 0, qt arranges system flags accordingly so the console window isn't shown.

      But QProcess::startDetached() does not perform such check and sets CREATE_NEW_CONSOLE flag unconditionally. Applying patch from [2] solves this issue for us, but we'd like to upstream this.

      See also:
      [1] : https://git.reviewboard.kde.org/r/124905/
      [2] : https://git.reviewboard.kde.org/r/127962/diff/1#index_header
      [3] : http://stackoverflow.com/questions/33874243/qprocessstartdetached-but-hide-console-window

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            krf Kevin Funk
            arrowd Gleb Popov
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes