Разница в том, что может сделать запущенный процесс.В обоих случаях у него не будет консоли.Но с опцией CREATE_NO_WINDOW он может вызвать AttachConsole (ATTACH_PARENT_PROCESS) и получить доступ к окну консоли родителя (если доступно).Это явно не будет работать, если вы укажете DETACH_PROCESS.Тогда единственный вариант для запущенного процесса - использовать AllocConsole () для создания собственной консоли.
Или, другими словами, вы можете быть уверены, что запущенный процесс никогда не сможет общаться с вашей собственной консолью,используя DETACH_PROCESS.