预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验三利用API在Windows下创建进程 一、实验目的 学习使用在Windows2000/XP中利用API创建进程的方法。 二、实验内容及要求 实验内容 在Windows命令控制台下创建进程,实现进程的创建。 实验要求 学习了解创建进程的函数CreateProcess及其特性; 熟悉实验环境,掌握相关API的使用方法; 设计测试程序,通过在命令行中加载相应的测试程序生成的命令文件,去按照命令文件中指定的程序路径打开相应的程序去执行; 提交实验报告。 三、相关知识介绍 在创建一个线程时,Windows会做大量的工作---创建一个新的地址空间,为进程分配资源以及创建一个基线程。CreateProcess函数的原型如下: CreateProcess(LPCTSTRlpApplicationName,//pointertonameofexecutablemoudleLPTSTRcmdLine,//pointertocommandlinestringLPSECURITY_ATTRIBUTESlpProcessAttributes,//pointertoprocesssecurityattributesLPSECURITY_ATTRIBUTESlpThreadAttributes,//pointertothereadsecurityattributesBOOLbInheritHandle,//handleinheritanceflagDWORDdwCreationFlag,//variouscreationflagsLPVOIDlpEnviroment,//EnviromentvariableLPCTSTRlpCurrentDirectory,//Child'scurrentdirectoryLPSTARTUPINFOlpStartupInfo,//pointertoStartupInfoLPPROCESS_INFORMATIONlpProcessInformation//pointertoPROCESS_INFORMATION)创建进程的函数为CreateProcess,该函数比较复杂共有十个参数。BOOLCreateProcess(LPCTSTRlpApplicationName,//执行程序文件名LPTSTRlpCommandLine,//参数行LPSECURITY_ATTRIBUTESlpProcessAttributes,//进程安全参数LPSECURITY_ATTRIBUTESlpThreadAttributes,//线程安全参数BOOLbInheritHandles,//继承标记DWORDdwCreationFlags,//创建标记LPVOIDlpEnvironment,//环境变量LPCTSTRlpCurrentDirectory,//运行该子进程的初始目录LPSTARTUPINFOlpStartupInfo,//创建该子进程的相关参数LPPROCESS_INFORMATIONlpProcessInformation//创建后用于被创建子进程的信息);lpApplicationName:为执行程序的文件名,如果在创建进程时要使用参数,则该参数可以为NULL。lpCommandLine:为参数行,如果无参数可以为NULL,在有参数传递给进程时如下设置:lpApplicationName=NULL;lpCommandLine=para,例如lpCommandLine="c:\\windows\\notepad.exec:\\autoexec.bat"。lpProcessAttributes,lpThreadAttributes:分别描述了创建的进程和线程安全属性,如果使用NULL表示使用默认的安全描述。bInheritHandles:表示当前进程中的打开的句柄是否能够被创建的子进程所继承。dwCreationFlags:表示创建标记,通过该标记可以设置进程的创建状态和优先级别。常用的有下面的标记:CREATE_NEW_CONSOLE:为子进程创建一个新的控制台。CREATE_SUSPENDED:子进程在创建时为挂起状态。HIGH_PRIORITY_CLASS/NORMAL_PRIORITY_CLASS:高/普通优先级别。lpEnvironment:表示子进程所使用的环境变量,如果为NULL,则表示与当前进程使用相同的环境变量。lpCurrentDirectory:表示子进程运行的初始目录。lpStartupInfo:用于在创建子进程时设置各种属性。该结构定义如下:typedefstruct_STARTUPINFO{//siDWORDcb;//结构长度LPTSTRlpReserved;//保留LPTSTRlpDesktop;