创建进程(CreateProcess)

版权声明:版权归本站站长所有转载请声明 https://blog.csdn.net/qq_40179458/article/details/85028316

下面来分享一下如何用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_infomation
 
 si.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:新建进程ID
  cout << " 新进程的主线程ID号:"<<pi.dwThreadId<<endl;   //dwthreadid: 新建主线程ID
 }
 system("pause");
 return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40179458/article/details/85028316