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

标签 c++ winapi process system

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

是否有任何替代方法可以让我同时启动多个命令行程序?例如在线程中。

如有任何帮助,我们将不胜感激。

::丹

最佳答案

使用 CreateProcess功能;这会创建一个新进程,但不会等待它完成。相反,您可以使用 WaitForSingleObject 自行等待。功能。

如果您要启动多个进程,您可能需要考虑使用 WaitForMultipleObjects这让您可以同时等待整个进程列表(和其他对象)。

参见 list of wait functions在 MSDN 上获取有关如何等待进程完成的更多替代方法。

关于用于启动多个命令提示符的 System() 的 C++ 替代方案。 WINAPI(无 MFC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317591/

相关文章:

c++ - 从二进制文件读取字节到 long int

c++ - 这些函数为什么不衰减到函数指针?

c++ - IME - 如何处理按键

c++ - 默认 WM_DESTROY 未正确清理子窗口

linux - 在 unix 中执行 "jobs"命令时,+ 和 - 符号表示什么?

c - "Ping pong"使用 unix 进程和管道的游戏

c++ - 通过构造函数初始化 std::array 私有(private)成员

影响窗口标题的 C++ 指针问题

c++ - 从 HWND、进程名称或其他进程标识符获取图标进程

c++ - 在类中使用 ifstream