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

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

Mary-Kate Olsen
发布: 2024-11-03 08:17:03
原创
940 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板