代码语言:javascript复制
#include <windows.h>
#include <stdio.h>
#include <iostream>
DWORD CreateChildProcess(LPSTR szChildProcessCmd);
int main()
{
CreateChildProcess("Child.exe");
}
DWORD CreateChildProcess(LPSTR szChildProcessCmd)
{
//启动信息结构变量
STARTUPINFO si;
//被创建进程的信息
PROCESS_INFORMATION pi;
//将启动信息结构清零
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);//设置启动信息结构的大小
//将被创建进程的信息结构清零
ZeroMemory(&pi,sizeof(pi));
//LPSTR 指向启动进程的EXE文件
//LPSTR 启动进程的命令行
//LPSECURITY_ATTRIBUTE 进程的安全属性
//LPSECURITY_ATTRIBUTE 进程句柄是否可被子进程继承
//BOOL 与子进程的句柄继承关系
//DWORD 进程创建标志和优先级,0为没有创建标志
//LPVOID 使用父进程的环境变量
//LPCTSTR 指定新进程的当前目录,NULL使用父进程的当前目录
//启动信息
//子进程信息
if(!CreateProcess(NULL,szChildProcessCmd,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
{
std::cout<<GetLastError()<<std::endl;
CHAR A;
std::cin>>A;
return 1;
}
WaitForSingleObject(pi.hProcess,INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}