Флаги CREATENEWCONSOLE и DETACHED_PROCESS в функции CreateProcess отличаются тем, как они влияют на создание консоли нового процесса. 12
CREATENEWCONSOLE указывает, что для нового процесса создаётся новая консоль, а не наследуется от родительского процесса, как по умолчанию. 15 При этом для дочернего процесса создаётся видимое окно консоли, даже если у родительского процесса оно уже есть. 3
DETACHED_PROCESS, в свою очередь, означает, что новый процесс не имеет доступа к родительской консоли, даже если родительский процесс каким-то образом делает дескриптор буфера консоли доступным для дочернего. 3 Дочерний процесс создаётся без консоли, даже скрытой. 3
Таким образом, CREATENEWCONSOLE создаёт консоль, а DETACHED_PROCESS — нет. Эти флаги взаимоисключающие: нельзя устанавливать оба. 2