下面来分享一下如何用C++创建进程(开发环境建议VS2017【宇宙第一IDE】)
/*以下为创建新的进程,以拉起记事本为例*/
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{char TEST[] = "notepad.exe"; //设置命令行 STARTUPINFO si = { sizeof(si) }; //startupinfo 结构体初始化PROCESS_INFORMATION pi; //process_infomationsi.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成员有效si.wShowWindow = TRUE; // 此成员设为TRUE的话则显示新建进程的主窗口,// 为FALSE的话则不显示BOOL bRet = ::CreateProcess(NULL, // 不在此指定可执行文件的文件名TEST, // 命令行参数 NULL, // 默认进程安全性NULL, // 默认线程安全性FALSE, // 指定当前进程内的句柄不可以被子进程继承CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口NULL, // 使用本进程的环境变量NULL, // 使用本进程的驱动器和目录&si,&pi);if (bRet){// 既然我们不使用两个句柄,最好是立刻将它们关闭::CloseHandle(pi.hThread); //结束新创建主线程句柄::CloseHandle(pi.hProcess); //结束新创建主进程句柄cout << " 新进程的进程ID号:" << pi.dwProcessId << endl; //dwprocessid:新建进程IDcout << " 新进程的主线程ID号:"<<pi.dwThreadId<<endl; //dwthreadid: 新建主线程ID}system("pause");return 0;
}