我正在编写一个程序,用于启动不同的命令行应用程序。问题是当我运行 1 个应用程序时,命令提示符控制了程序并且不允许我访问我的 GUI 以启动另一个应用程序。我相信这是因为 System()
创建了一个新进程,然后一旦退出命令提示符,控制权就会交还给 GUI。
是否有任何替代方法可以让我同时启动多个命令行程序?例如在线程中。
如有任何帮助,我们将不胜感激。
::丹
最佳答案
使用 CreateProcess
功能;这会创建一个新进程,但不会等待它完成。相反,您可以使用 WaitForSingleObject
自行等待。功能。
如果您要启动多个进程,您可能需要考虑使用 WaitForMultipleObjects
这让您可以同时等待整个进程列表(和其他对象)。
参见 list of wait functions在 MSDN 上获取有关如何等待进程完成的更多替代方法。
关于用于启动多个命令提示符的 System() 的 C++ 替代方案。 WINAPI(无 MFC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317591/