#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; }