C++创建一个新的进程
原文:http://blog.csdn.net/hk627989388/article/details/53309865
STARTUPINFO用于指定新进程的主窗口特性的一个结构。
PROCESS_INFORMATION在创建进程时相关的数据结构之一,该结构返回有关新进程及其主线程的信息。
- void CCreateProgressDlg::StartProgress()
- {
- CString csCommandLine;
- char chWindowsDir[MAX_PATH];
- char chCommandLine[MAX_PATH];
- DWORD dwExitCode;
- PROCESS_INFORMATION pi;
- STARTUPINFO si;//用于指定新进程的主窗口特性的一个结构
- memset(&si, 0, sizeof(si));
- si.cb = sizeof(STARTUPINFO);
- si.dwFlags = STARTF_USESHOWWINDOW;
- si.wShowWindow = SW_SHOW;//SW_HIDE隐藏窗口
- //得到windows目录
- GetWindowsDirectory(chWindowsDir, MAX_PATH);
- //启动“记事本”程序的命令行
- csCommandLine = CString(chWindowsDir) + "\\NotePad.exe";
- ::strcpy(chCommandLine, csCommandLine);
- //启动“记事本”作为子进程
- BOOL ret = CreateProcess(NULL, chCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
- if (ret)
- {
- //关闭子进程的主线程句柄
- CloseHandle(pi.hThread);
- //等待子进程的退出
- WaitForSingleObject(pi.hProcess, INFINITE);
- //获取子进程的退出码
- GetExitCodeProcess(pi.hProcess, &dwExitCode);
- //关闭子进程句柄
- CloseHandle(pi.hProcess);
- }
- }
源码:http://files.cnblogs.com/files/lizhigang/CreateProgress.rar
C++创建一个新的进程的更多相关文章
- Delphi CreateProcess 创建一个新的进程和它的主线程
Delphi CreateProcess WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件 CreateProcess百科名片 WIN32 ...
- 创建一个新的进程os.fork
import os pid = os.fork()功能:创建新的进程参数:无返回值:失败返回一个负数 成功:在原有进程中返回一个新的进程的PID号 在新的进程中返回0 *子进程会复制父进程全部代码段, ...
- Linux内核分析-分析Linux内核创建一个新进程的过程
作者:江军 ID:fuchen1994 实验题目:分析Linux内核创建一个新进程的过程 阅读理解task_struct数据结构http://codelab.shiyanlou.com/xref/li ...
- linux内核分析作业6:分析Linux内核创建一个新进程的过程
task_struct结构: struct task_struct { volatile long state;进程状态 void *stack; 堆栈 pid_t pid; 进程标识符 u ...
- Linux内核创建一个新进程
张雨梅 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-10000 创建新进程 如果同一个程序被多 ...
- 第六周——分析Linux内核创建一个新进程的过程
"万子恵 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 &q ...
- 分析Linux内核创建一个新进程的过程
一.原理分析 1.进程的描述 进程控制块PCB——task_struct,为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct ...
- Linux内核创建一个新进程的过程
“平安的祝福 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 进程在 ...
- 分析Linux内核创建一个新进程的过程【转】
转自:http://www.cnblogs.com/MarkWoo/p/4420588.html 前言说明 本篇为网易云课堂Linux内核分析课程的第六周作业,本次作业我们将具体来分析fork系统调用 ...
随机推荐
- OpenCV识别技术
OpenCV识别技术# 老师:james 20181019 # 识别技术# Pycharm + Python3 + OpenCV """ 一.识别技术: 什么是OpenC ...
- 配置不同站点不同版本PHP
Apache 配置 1.常规手动部署apache方法(不会apache配置的请先移步看下Apache基本手工配置方法),解压fcgid,取其mod_fcgid.so至modules目录 2.打开htt ...
- 【算法笔记】A1060 Are They Equal
1060 Are They Equal (25 分) If a machine can save only 3 significant digits, the float numbers 1230 ...
- 使用nginx+uwsgi+Django环境部署
环境准备 Python点这里 nginx点这里 uwsgi点这里
- Mac下使用tree命令
Mac下没有tree命令,但是可以通过brew进行安装,命令如下: brew install tree 装好后tree的用法和linux下的保持一致.参考:http://www.cnblogs.com ...
- (转)linux运维必会MySQL企业面试题
linux运维必会MySQL企业面试题 老男孩教育运维班全体学员MySQL必会企业面试题最实战.最细致.最落地的运维实训基地,老男孩教育连续多年国内平均就业工资最高! 数据库的重要性是所有技术里最核 ...
- Hibernate中Query.list()方法报IllegalArgumentException异常
最近在使用Hibernate开发项目,在写好hql语句,并初始化Query对象,执行Query.list()方法时,应用报IllegalArgumentException异常.经网上查询,现已经基本决 ...
- First Android application
In eclipse ADT : 1.创建一个新工程 File -> New -> Android Application Project 2.三个主要的文件 /src/MainActiv ...
- 实现Date函数属性中的format方法
js中没有Date.format方法的,所以在date属性中加format方法 //js格式化属性 Date.prototype.format = function (format) { var o ...
- 认识HDFS分布式文件系统
1.设计基础目标 (1) 错误是常态,需要使用数据冗余 (2)流式数据访问.数据批量读而不是随机速写,不支持OLTP,hadoop擅长数据分析而不是事物处理. (3)文件采用一次性写多次读的模型, ...