WinApi学习笔记-创建进程

2022-05-09 11:08:52 浏览数 (2)

代码语言: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;

}

0 人点赞