WinApi学习笔记-创建进程

#include <windows.h>
#include <stdio.h>
#include <iostream>

DWORD CreateChildProcess(LPSTR szChildProcessCmd);
int main()
{
	CreateChildProcess("Child.exe");
}

DWORD CreateChildProcess(LPSTR szChildProcessCmd)
{
	//启动信息结构变量
	STARTUPINFO si;
	//被创建进程的信息
	PROCESS_INFORMATION pi;
	//将启动信息结构清零
	ZeroMemory(&si,sizeof(si));
	si.cb = sizeof(si);//设置启动信息结构的大小
	//将被创建进程的信息结构清零
	ZeroMemory(&pi,sizeof(pi));
	//LPSTR 指向启动进程的EXE文件
	//LPSTR 启动进程的命令行
	//LPSECURITY_ATTRIBUTE 进程的安全属性
	//LPSECURITY_ATTRIBUTE 进程句柄是否可被子进程继承
	//BOOL 与子进程的句柄继承关系
	//DWORD 进程创建标志和优先级,0为没有创建标志
	//LPVOID 使用父进程的环境变量
	//LPCTSTR 指定新进程的当前目录,NULL使用父进程的当前目录
	//启动信息
	//子进程信息
	if(!CreateProcess(NULL,szChildProcessCmd,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
	{
		std::cout<<GetLastError()<<std::endl;
		CHAR A;
		std::cin>>A;
		return 1;
	}
	WaitForSingleObject(pi.hProcess,INFINITE);
	CloseHandle(pi.hProcess);
	CloseHandle(pi.hThread);

	return 0;

}
时间: 2024-10-25 11:33:18

WinApi学习笔记-创建进程的相关文章

angularJS学习笔记:创建自定义angularJS指令基础篇

AngularJS提供了很多指令可以帮助我们操作DOM.处理事件.数据绑定.绑定控制器与作用域(ngView)等等.例如ngClick.ngShow.ngHide.ngRepeat以及其它很多AngularJS核心的指令都可以帮助我们很轻松的使用这个框架. 虽然内置的指令已经覆盖了大部分的使用场景,但在实际使用中为了简化操作或组件重用等我们经常需要创建自己的指令.在这个系列的文章中我将一步步带你了解AngularJS指令是如何工作的,以及如何开始使用/创建它们. 在这个系列的文章中我们假定你已经

WinApi学习笔记-内存管理

一:进程虚拟地址空间的实现 每个进程都有一个私有的虚拟地址空间 系统将每个进程的虚拟地址空间映射到物理内存上 为了实现每个进程都有一个私有的虚拟地址空间系统为每个进程都创建了一个页目录和一组页表 每个进程的页表是独立的 而内核空间的页表是所有进程共享的 X86平台上有一个CR3寄存器,该寄存器保存当前运行的进程的页目录地址 系统进行进程切换时,会将CR3内的地址置为将要执行的进程的页目录地址 每个进程都有一个KPROCESS结构的属性,其中包括了进程页目录地址 二:数据共享与保护 有一些进程间共

WinApi学习笔记-第一次离内存这么近

  Code#include <windows.h>#include <stdio.h>#include <iostream>using namespace std; //参数1堆句柄,参数2内存地址指针DWORD PrintHeapSize(HANDLE hHeap,LPVOID lpMem){    SIZE_T dwHeapSize;    dwHeapSize = HeapSize(hHeap,HEAP_NO_SERIALIZE,lpMem);    if(dw

ObjectArx学习笔记-创建标注样式

实现代码: static void qxzyAddDimStyle_AddDimStyle(void) { ACHAR styleName[50]; if(acedGetString(Adesk::kFalse, _T("请输入样式名称:"), styleName) != RTNORM) { return; } AcDbDimStyleTable *pDimStyleTbl; acdbHostApplicationServices()->workingDatabase() -&g

ObjectArx学习笔记-创建多段线

1.创建一个工具类CTool. Tool.h: static ads_real GetWidth(); static int GetColorIndex(); Tool.cpp ads_real CTool::GetWidth() { ads_real width = 0; if(acedGetReal(_T("\n输入线宽:"), &width)==RTNORM) { return width; } else { return 0; } } int CTool::GetCol

WindowsApi学习笔记-创建一个简单的窗口

#include <windows.h> LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);//窗口函数的函数原型 int APIENTRY WinMain( //APIENTRY是__stdcall的宏定义 HINSTANCE hInstance, //本模块的实例句柄 HINSTANCE hPrevInstance, //Win16留下的废物 LPSTR lpCmdLine, //命令行参数 int nCmdShow //主窗口初始

汇编语言学习笔记-创建最基本的windows窗体

1如果你不熟悉开发环境的搭建请看此文:http://www.cnblogs.com/liulun/archive/2009/12/26/1632985.html2如果你看了此文的所有注释仍看不懂,请暂且不要再看本系列的其他文章了,先学学WINDOWS API的相关知识吧3以上代码摘自一个汇编语言全接触的CHM 是一个名叫Lxx的前辈翻译的4希望得到大家的支持 .386 .model flat,stdcall;内存平坦,参数传递约定 option casemap:none;大小写敏感 ;;;;;;

WinApi学习笔记-读写文件

读文件 #include <windows.h> #include <stdio.h> #include <iostream> DWORD MyReadFile(LPSTR filePath) { HANDLE hFileRead; LARGE_INTEGER liFileSize; DWORD dwReadSize; LONGLONG liTotalRead = 0; BYTE lpFileDataBuffer[32]; hFileRead = CreateFile(

WinApi学习笔记-HellowWorld

在vs2008中新建一个VC++的空项目在解决方案资源管理器,源文件文件夹中添加一个CPP文件在此文件中输入以下代码 #include <windows.h> int WinMain( HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow ) { MessageBox(NULL,TEXT("HELLOW WORLD"),TEXT("XLAND"),MB_OK)