首页 >后端开发 >C++ >如何使用 CreateProcess() 从另一个 C .exe 启动 .exe 文件?

如何使用 CreateProcess() 从另一个 C .exe 启动 .exe 文件?

Barbara Streisand
Barbara Streisand原创
2024-10-30 04:03:02572浏览

How to Launch an .exe File from Another C   .exe Using CreateProcess()?

使用 CreateProcess() 从 C 打开 .exe 文件

当旨在从另一个 C .exe 启动 .exe 文件时, system() 函数通常不鼓励使用,因为它在安全性、效率和防病毒兼容性方面存在潜在缺陷。

相反,请考虑使用 CreateProcess() 函数,它允许您生成一个新进程来执行目标.exe独立文件。下面是演示其用法的示例:

<code class="c++">#include <windows.h>

VOID startup(LPCTSTR lpApplicationName)
{
  STARTUPINFO si;
  PROCESS_INFORMATION pi;

  ZeroMemory(&si, sizeof(si));
  si.cb = sizeof(si);
  ZeroMemory(&pi, sizeof(pi));

  CreateProcess(lpApplicationName, argv[1], NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
}</code>

将 .exe 文件的绝对路径作为 lpApplicationName 参数传递给此函数。

对先前代码进行故障排除

在使用 system() 的原始代码中,您遇到的错误可能是由于缺少 OpenFile.exe 的路径造成的。确保指定的 .exe 文件存在于您提供给 system() 或 CreateProcess() 的路径中。

以上是如何使用 CreateProcess() 从另一个 C .exe 启动 .exe 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

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