首页 >后端开发 >C++ >如何在 C 中使用 ::CreateProcess 启动和控制外部可执行文件?

如何在 C 中使用 ::CreateProcess 启动和控制外部可执行文件?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-03 08:17:03935浏览

How to Launch and Control External Executables with ::CreateProcess in C  ?

在 C 中使用 ::CreateProcess 启动 Windows 可执行文件

在 C 中使用 Windows 时,有必要了解如何有效地启动和控制外部可执行文件。为此目的的一个关键函数是 ::CreateProcess。

示例:启动可执行文件并与可执行文件交互

让我们探讨一个涵盖关键要求的示例:

  • 启动 EXE 文件
  • 监视其执行
  • 完成后正确关闭句柄

考虑以下代码片段:

<code class="c++">STARTUPINFO info = { sizeof(info) };
PROCESS_INFORMATION processInfo;
if (CreateProcess(path, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
    WaitForSingleObject(processInfo.hProcess, INFINITE);
    CloseHandle(processInfo.hProcess);
    CloseHandle(processInfo.hThread);
}</code>

此代码演示如何:

  1. 启动由 cmd 中的路径和潜在命令行参数定义的可执行文件。
  2. 使用 processInfo 获取有关创建的进程及其主线程的信息.
  3. 使用 WaitForSingleObject 无限期地等待进程完成。
  4. 使用 CloseHandle 关闭进程和线程句柄以确保正确的清理。

通过遵循此方法,您可以在 C 应用程序中有效地创建和管理子流程。

以上是如何在 C 中使用 ::CreateProcess 启动和控制外部可执行文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn