title: What is the difference between DETACH_PROCESS and CREATE_NO_WINDOW process creation flags for createProcess function
body: <p>I have been trying to understand the difference between these two process creation flags. The <a href="http://msdn.microsoft.com/en-us/library/ms684863%28v=vs.85%29.aspx" rel="noreferrer">msdn documentation</a> is not clear about the distinction. </p>
  
  <ul>
  <li>Does CREATE_NO_WINDOW causes the process to have a console (standard input/output streams initialized) without displaying a window while DETACH_PROCESS has no console at all?</li>
  <li>What are the implications are for a child-of-a-child process?</li>
  <li>What would be the behavior matrix that describes what happens at each combination of (parent has console, parent doesn't have console) X (child executable requires console (main), child executable does not require console (WinMain)).?</li>
  </ul>