C++用于启动多个命令提示的System()替代方案.WINAPI(无MFC)

L33*_*EAN 1 c++ winapi system process

我正在编写一个用于启动不同命令行应用程序的程序.问题是当我运行1个应用程序时,命令提示符控制程序,并且不允许我访问我的GUI以启动另一个.我相信这是因为System()创建了一个新进程,然后一旦退出命令提示符,控制就会返回给GUI.

是否有任何替代方案可以让我一次启动多个命令行程序?比如在线程中.

任何有关这方面的帮助将不胜感激.

::担

Fre*_*abe 6

使用CreateProcess功能; 这创造了一个新的过程,但不等待它完成.相反,您可以使用该WaitForSingleObject功能自行等待.

如果要启动多个进程,可能需要考虑使用WaitForMultipleObjects哪个进程可以让您一次等待整个进程列表(以及其他对象).

有关如何等待进程完成的更多选择,请参阅MSDN上的等待函数列表.

  • 如果它是一个普通的程序,只需将路径传递给`CreateProcess()`.如果确实需要命令处理器,那么你需要使用`/ c`或`/ k`参数运行`cmd.exe`(或`%COMSPEC%`). (2认同)