创建进程(CreateProcess)

下面来分享一下如何用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;
}

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

༄yi笑奈何

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值