欢迎来到天天文库
浏览记录
ID:26609360
大小:287.99 KB
页数:18页
时间:2018-11-28
《windows体系编程实验报告(华北电力大学科技学院)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、附件3科技学院课程设计(综合实验)报告(20--20年度第学期)名称:Windows体系编程题目:课内综合实验院系:信息工程系班级:软件09k2学号:091909020227学生姓名:闫雪峰指导教师:李刚实验学时:12学时成绩:日期:2012年5月19日一、课程设计(综合实验)的目的与要求1.正文为宋体,五号字行间距为211.1------------1.2------------二、设计(实验)正文1.正文为宋体,五号字行间距为211.1------------1.2------------三、课程设计(综合实验)总结
2、或结论1.正文为宋体,五号字行间距为211.1------------1.2------------四、参考文献[1]作者1,作者2.书名.出版单位,版本.出版日期附录(设计流程图、程序、表格、数据等)注:根据课程设计、综合实验的内容将标题任选其一。进程管理实验一、实验目的理解Windows编程环境下的进程管理机制,能创建一个完成特定功能的进程,并能对进程进行信息的获取、终止和保护。二、实验要求1.编写一段程序,能够完成创建进程的功能,要求启动windows记事本程序(notepad.exe),同时打开一个文本文件,路径
3、为:c:systemuser.log。并打印出新建进程ID。2.获取当前系统进程信息,打印输出进程名称和ID号。3.终止新创建的进程并获取退出代码。三、实验原理(1)进程的创建进程的创建通过CreateProcess()函数来实现,CreateProcess()通过创建一个新的进程及在其地址空间内运行的主线程来启动并运行一个新的程序。具体地,在执行CreateProcess()函数时,首先由操作系统负责创建一个进程内核对象,初始化计数为1,并立即为新进程创建一块虚拟地址空间。随后将可执行文件或其他任何必要的动态链接库
4、文件的代码和数据装载到该地址空间中。在创建主线程时,也是首先由系统负责创建一个线程内核对象,并初始化为1。最后启动主线程并执行进程的入口函数WinMain(),完成对进程和执行线程的创建。CreateProcess()函数的原型声明如下:BOOLCreateProcess(LPCTSTRlpApplicationName,//可执行模块名LPTSTRlpCommandLine,//命令行字符串LPSECURITY_ATTRIBUTESlpProcessAttributes,//进程的安全属性LPSECURITY_ATTR
5、IBUTESlpThreadAttributes,//线程的安全属性BOOLbInheritHandles,//句柄继承标志DWORDdwCreationFlags,//创建标志LPVOIDlpEnvironment,//指向新的环境块的指针LPCTSTRlpCurrentDirectory,//指向当前目录名的指针LPSTARTUPINFOlpStartupInfo,//指向启动信息结构的指针LPPROCESS_INFORMATIONlpProcessInformation//指向进程信息结构的指针);(2)进程的获取
6、进程的定义是为执行程序指令的线程而保留的一系列资源的集合。进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。进程是一些所有权的集合,一个进程拥有内存、CPU运行时间等一系列资源,为线程的运行提供一个环境,每个进程都有它自己的地址空间和动态分配的内存、线程、文件和其他一些模块。系统快照的获取可以通过Win32API函数CreateToolhelp32Snapshot()来完成,通过该函数不仅可以获取进程的快照,同样可以获取堆、模块和线程的系统快照。函数的声明
7、如下:HANDLEWINAPICreateToolhelp32Snapshot(DWORDdwFlags,//指定要创建包含哪一类系统信息的快照函数DWORDth32ProcessID//指定进程的ID号,当设定为0时表示指定当前进程);一旦系统得到系统快照句柄,就可以对当前的标识号进行枚举,进程号通过函数Process32First()和Procee32Next()得到,这两个函数可以用于获取系统快照中第一个和下一个系统的信息,这两个函数的声明如下:BOOLWINAPIProcess32First(HANDLEhSna
8、pshot,//系统快照句柄LPPROCESSENTRY32lppe//指向结构体PROCESSENTRY32的指针);BOOLWINAPIProcess32Next(HANDLEhSnapshot,//系统快照句柄LPPROCESSENTRY32lppe//指向结构体PROCESSENTRY32的指针);(3)进程
此文档下载收益归作者所有