创建进程
#include <windows.h> #include <stdio.h> /************************************* *DWORD CreateChildProcess(LPSTR szChildProcessCmd) *功能: 演示创建子进程 *参数: LPSTR szChildProcessCmd 启动子进程命令 *返回值: 成功返回0, 失败返回1 **************************************/ DWORD CreateChildProcess(LPSTR szChildProcessCmd){ STARTUPINFO si; //startup_info 启动_信息 PROCESS_INFORMATION pi; //process_information 进程_消息(通知) //将启动信息结构清零 ZeroMemory(&si, sizeof(si)); //设置结构大小, cb属性应为结构的大小 si.cb = sizeof(si); //将进程信息结构清零 ZeroMemory(&pi, sizeof(pi)); //创建子进程, 并判断是否成功 if (!CreateProcess(NULL, //使用命令行 szChildProcessCmd, //命令行 NULL, //不继承进程句柄 NULL, //不继承线程句柄 FALSE, //不继承句柄 0, //没有创建标志 NULL, //使用父进程环境变量 NULL, //使用父进程目录作为当前目录 &si, &pi) ){ //创建失败 printf("CreateProcess failed (%d).\n", GetLastError()); return 1; } //在创建成功后父进程也可以直接退出, 这里等待子进程执行结束 //等待子进程结束 //使用到了通过 PROCESS_INFORMATION 返回的相关信息, hProcess 为子进程句柄 //父进程也可以不等待子进程运行完成而直接退出 WaitForSingleObject(pi.hProcess, INFINITE); //关闭进程句柄和线程句柄. CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return 0; } //演示进程创建过程 int main(){ CreateChildProcess("Child.exe abc 123"); printf("子进程结束!!!"); system("pause"); }
编译时, 把字符集改成 使用多字节字符集.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。