我正在编写一个用于启动不同命令行应用程序的程序。问题是当我运行 1 个应用程序时,命令提示符会控制该程序,并且不允许我访问我的 GUI 来启动另一个。我相信这是因为System()
创建了一个新进程,然后一旦退出命令提示符,控制权就会交还给 GUI。
是否有任何替代方法可以让我一次启动多个命令行程序?例如在一个线程中。
对此的任何帮助将不胜感激。
::担
使用CreateProcess
功能;这会创建一个新进程,但不会等待它完成。WaitForSingleObject
相反,您可以使用该功能自己等待。
如果您正在启动多个进程,您可能需要考虑使用WaitForMultipleObjects
它可以让您一次等待整个进程(和其他对象)列表。
有关如何等待进程完成的更多替代方法,请参阅MSDN 上的等待函数列表。