我一直在努力理解这两个进程创建标志之间的区别。 msdn documentation并不清楚区别。
答案 0 :(得分:16)
不同之处在于启动过程可以执行的操作。在这两种情况下,它都没有控制台。但是使用CREATE_NO_WINDOW选项,它可以调用AttachConsole(ATTACH_PARENT_PROCESS)并访问父控制台窗口(如果可用)。当您指定DETACH_PROCESS时,这显然不起作用。然后唯一的选择是让已启动的进程使用AllocConsole()来创建自己的控制台。
或者换句话说,您可以确定启动的进程永远无法通过使用DETACH_PROCESS进入您自己的控制台。