如何使用createprocess启动程序

avatar
作者
筋斗云
阅读量:1

在Windows平台上使用CreateProcess函数启动程序,可以按照以下步骤:

  1. 引入相关的头文件:
#include <windows.h> #include <tchar.h> 
  1. 定义启动进程的参数:
TCHAR szCmdline[] = _T("path_to_executable"); // 可执行文件的路径 STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); 
  1. 调用CreateProcess函数启动程序:
if (!CreateProcess(NULL,   // 不使用可执行文件的名称     szCmdline,              // 可执行文件的路径     NULL,                   // 安全描述符     NULL,                   // 安全描述符     FALSE,                  // 继承句柄     0,                      // 标志     NULL,                   // 使用当前的环境变量     NULL,                   // 使用当前的工作目录     &si,                    // STARTUPINFO     &pi))                   // PROCESS_INFORMATION {     // 创建进程失败     printf("CreateProcess failed (%d).\n", GetLastError());     return; } 
  1. 可选的,等待进程结束并获取其退出代码:
// 等待进程结束 WaitForSingleObject(pi.hProcess, INFINITE);  // 获取进程的退出代码 DWORD dwExitCode; GetExitCodeProcess(pi.hProcess, &dwExitCode);  printf("Child process exited with code %d\n", dwExitCode);  // 关闭进程和线程的句柄 CloseHandle(pi.hProcess); CloseHandle(pi.hThread); 

通过以上步骤,您可以使用CreateProcess函数在Windows平台上启动一个新的进程。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!