1 // 04 创建一个进程.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <windows.h> 6 #include<stdio.h> 7 BOOL CreateChildProcess(LPWSTR lpPath, BOOL bWait); 8 int _tmain(int argc, _TCHAR* argv[]) 9 { 10 PROCESS_INFORMATION pi = {}; 11 STARTUPINFO si = {}; 12 CreateProcess( 13 TEXT("E:\软件安装\Bin\QQ.exe"), //exe文件路径 14 NULL, //lpCommandLine传递给新进程的命令行字符串,此参数类型为PTSTR,意味着在执行过程中可能修改传入的值 15 NULL, //lpProcessAttributes进程安全属性 16 NULL, //线程安全属性 17 FALSE, //表示新创建的子进程是否继承父进程的所有句柄,是的话子进程就可以访问父进程创建的所有句柄 18 NULL, //子进程的创建方式 19 NULL, //指向保存有进程环境的当前目录 20 NULL, //新创建子进程的当前目录 21 &si, //不能省略,指向子进程创建配置结构体,此结构体可以详细控制子进程的各种创建状态 22 &pi); //不能省略,返回进程创建的详细信息 23 return 0; 24 } 25 BOOL CreateChildProcess(LPWSTR lpPath, BOOL bWait){ 26 STARTUPINFO si = { 0 };//新进程窗口特性 27 PROCESS_INFORMATION pi = { 0 };//新进程信息结构体 28 si.cb = sizeof(si); 29 //1.创建子进程,并判断是否成功 30 if (!CreateProcess(lpPath, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)); 31 return FALSE; 32 //是否需要等待进程执行结束 33 if (bWait) 34 WaitForSingleObject(pi.hProcess, INFINITE); 35 //关闭进程句柄和线程句柄 36 CloseHandle(pi.hProcess); 37 CloseHandle(pi.hThread); 38 return true; 39 40 }
创建进程
让数据变得更安全!