使用CreateProcess创建新的process 并返回process运行结束返回值
转自:http://blog.csdn.net/zgl7903/article/details/5975284
转载这篇主要是记住:获得create的新进程运行结束时的返回值的方法
如下:
- #include <malloc.h>
- DWORD run_Execute(LPCTSTR lpszFile, LPCTSTR lpszParam)
- {
- DWORD exitCode = 0;
- PROCESS_INFORMATION pInfo = {0};
- STARTUPINFO sInfo = {0};
- sInfo.cb = sizeof(STARTUPINFO);
- sInfo.wShowWindow = SW_SHOW;
- int nCmdLen = (_tcslen(lpszFile) + _tcslen(lpszParam) + 2) * sizeof(TCHAR);
- LPTSTR lpszCmd = (LPTSTR)_alloca(nCmdLen);
- memset(lpszCmd, 0, nCmdLen);
- _tcscpy(lpszCmd, lpszFile);
- if(lpszParam)
- {
- _tcscat(lpszCmd, _T(" "));
- _tcscat(lpszCmd, lpszParam);
- }
- if(CreateProcess(
- NULL, //LPCTSTR lpApplicationName, // pointer to name of executable module
- lpszCmd, //LPTSTR lpCommandLine, // pointer to command line string
- NULL, //LPSECURITY_ATTRIBUTES lpProcessAttributes, // process security attributes
- NULL, //LPSECURITY_ATTRIBUTES lpThreadAttributes, // thread security attributes
- FALSE, //BOOL bInheritHandles, // handle inheritance flag
- 0, //DWORD dwCreationFlags, // creation flags
- NULL, //LPVOID lpEnvironment, // pointer to new environment block
- NULL, //LPCTSTR lpCurrentDirectory, // pointer to current directory name
- &sInfo, //LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
- &pInfo)) //LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
- {
- // Wait until child process exits.
- WaitForSingleObject( pInfo.hProcess, INFINITE );
- if (GetExitCodeProcess(pInfo.hProcess, &exitCode))
- {
- TRACE( _T("Exit code = %d/n"), exitCode);
- }
- else
- {
- TRACE( _T("GetExitCodeProcess() failed: %ld/n"), GetLastError());
- ASSERT(0);
- }
- // Close process and thread handles.
- CloseHandle( pInfo.hProcess );
- CloseHandle( pInfo.hThread );
- }
- else
- {
- TRACE( _T("CreateProcess() failed: %ld/n"), GetLastError());
- ASSERT(0);
- }
- return exitCode;
- }
- //测试示例
- run_Execute(_T("notepad.exe"), _T("c://temp//aa.txt"));
jpg 转 rar 
使用CreateProcess创建新的process 并返回process运行结束返回值的更多相关文章
- Win32 API编程:使用CreateProcess创建新进程
#include <windows.h> #include <tchar.h> #include <stdio.h> int main(int argc, char ...
- VC++ 使用CreateProcess创建新进程
https://www.cnblogs.com/fancing/p/6477918.html #include <windows.h> #include <tchar.h> # ...
- android点击返回键,如何做到不destory当前activity,只是stop。重新返回该activity的 时候可以直接使用,不需要创建新的activity实例
问题描述,如题目: android点击返回键,顺序执行 pause,stop,destory. 以至于想重新进入这个activity的时候还要重新执行onCreate()方法,那么如何解决不再重新执行 ...
- Delphi 使用CreateProcess创建进程并弹出进程PID值 (转)
var ExeName:PChar; StartupInfo:TStartupInfo; ProcessInfo:TProcessInformation;begin FillChar(Proc ...
- linux进程学习-创建新进程
init进程将系统启动后,init将成为此后所有进程的祖先,此后的进程都是直接或间接从init进程“复制”而来.完成该“复制”功能的函数有fork()和clone()等. 一个进程(父进程)调用for ...
- WebAPi之SelfHost自创建证书启动Https疑难解惑及无法正确返回结果
前言 话说又来需求了,之前对于在SelfHost中需要嵌套页面并操作为非正常需求,这回来正常需求了,客户端现在加了https,老大过来说WebAPi访问不了了,这是什么情况,我去试了试,还真是这个情况 ...
- 用Kotlin开发Android应用(II):创建新项目
这是关于Kotlin的第二篇.各位高手发现问题,请继续“拍砖”. 原文标题:Kotlin for Android(II): Create a new project 原文链接:http://anton ...
- Drupal8开发教程:模块开发——创建新页面
之前我们已经通过<Drupal8开发教程:认识.info.yml文件>对模块的YAML文件有了了解,今天我们来看如何通过模块开发的方式添加一个新的页面. 在 Drupal 7 中,通过模块 ...
- (转)Qt Model/View 学习笔记 (四)——创建新的Models
创建新的Models 介绍 model/view组件之间功能的分离,允许创建model利用现成的views.这也可以使用标准的功能 图形用户接口组件像QListView,QTableView和QTre ...
随机推荐
- Android O 可以上网 提示无法访问网络
android O连接Wifi,可以上网,但是却提示无法访问网络,并且在wifi图标上有一个'x'. 从android N开始引入了监控机制,每次连接都会访问一下google的服务器,由于国内被墙,所 ...
- 第三百六十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)倒排索引
第三百六十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)倒排索引 倒排索引 倒排索引源于实际应用中需要根据属性的值来查找记录.这种索引表中的每一项都包 ...
- SpringBoot系列一:SpringBoot的产生
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 长期以来 Java 的开发一直让人所诟病: ·Java 项目开发复杂度极其高: · Java 项目的维护非常困难: · 在云时代 ...
- tpshop全局公共方法
TPshop 全局公告函数库 前后台可用 这里只列出有哪些方法, 简单描述, 具体的函数体查看 Application\Common\Common\function.php 文件 <?php ...
- Linux 定时任务crontab_014
1. crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...
- 使用阿里云的maven私服的setting.xml, 提高maven项目jar下载速度
下载: http://files.cnblogs.com/files/007sx/settings.zip 然后替换自己原本maven的配置文件. 如下载失败,可内容替换: <?xml vers ...
- 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库
7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库 三种方法 rpm工具----->类型windows下的exe程序 ...
- EJB与JPA的关系
转自:http://www.cnblogs.com/o-andy-o/archive/2012/04/17/2453537.html JPA是基于Java持久化的解决方案,主要是为了解决ORM框架的差 ...
- perforce变量配置与使用
linux Perforce 使用 1.配置环境变量: 下载 perforce 放到/usr/bin/下 export P4PORT=192.168.4.88:1666 #P4所在的主机exp ...
- php扩展yaf 按照配置
Yaf,全称 Yet Another Framework,是一个C语言编写的PHP框架,是一个用PHP扩展形式提供的PHP开发框架, 相比于一般的PHP框架, 它更快. 它提供了Bootstrap, ...