您好,欢迎访问三七文档
进程管理器课程设计题目:进程管理器姓名:赵王正目录一、需求与功能分析...............................................................................................................3二、系统总体框架...................................................................................................................42.1系统框架图....................................................................................................................42.2各功能模块的详细说明................................................................................................4三、模块设计与分析...............................................................................................................53.1获取进程模块.............................................................................................................53.2启动新进程模块............................................................................................................63.3终止进程模块................................................................................................................83.4退出模块......................................................................................................................10四、类的设计与分析.............................................................................................................114.1、CShowAllProcessApp类............................................................................................114.2CaboutDlg类................................................................................................................114.3、CshowAllProcessDlg类.............................................................................................124.4、CSXButton类.............................................................................................................13六、功能测试.........................................................................................................................15七、存在的不足与对策.........................................................................................................18八、程序源代码.....................................................................................................................19一、需求与功能分析我们的电脑需要我们去了解它的运行状况,掌握和管理它的进程,并对其异常情况给予操作和控制,进程管理器就像是我们了解和控制自己电脑运作的一个窗口,通过这个窗口我们可以了解到电脑所有进程运行状况,并对运行的进程加于管理和控制,正如在本实验中,启动进程管理器后,可以通过”获取进程”功能来获得本计算机启动的进程,以及与该进程相关的信息,其中包括的信息有:进程映像名称,进程开启的线程数,进程的PID以及进程的优先数,我们可以通过这些信息来了解计算机中每个进程的使用状况。同时我们可以在进程管理器上选中一个要终止的的进程,点击“终止进程”功能按钮,该进程被终止执行并退出进程列表,其中还包括了自动刷新的功能,此按钮实现的功能正如我们电脑任务管理器的“进程”功能,当电脑执行程序不能通过关闭窗口进行正常的关闭时,可以借助此办法来关闭进程。我们还可以通过这个进程管理器来启动新的进程,当我们要在进程管理器里启动新的进程时,只要点击“启动新进程”按键,则会弹出“打开进程”对话框,我们可以通过对话框里的“浏览”窗口选择要打开的新进程,这是任务管理器里没有实现的功能,通过这个功能我们在管理计算机时变得更加灵活方便,也使进程管理的功能更加完善。在退出此进程管理器时候,只要选择“退出”功能按钮则可关闭进程管理器,快速退出管理器的界面。本管理器设计比较简洁,操作灵活,使用简单,可以为我们管理和控制计算机的进程提供了一个简便的方法,是我们控制本计算机进程和了解计算机进程情况的良好助手。二、系统总体框架2.1系统框架图本系统设计比较简洁,用MFC来做界面,实现了四个功能,显示四类与进程相关的信息,具体的总体框架图如图1所示:\图1总体框架图2.2各功能模块的详细说明本系统实现了四大功能,分别包括了:获取进程、启动新进程、终止进程和退出管理器,各功能模块的详细说明如下:(1)获取进程。点击获取进程后,它能自动获取计算机的所有进程,并显示进程的相关信息,其中包括的信息有:进程映像名称,进程开启的线程数,进程的PID以及进程的优先数,通过这一功能,我们能了解进程的相关情况。(2)启动新进程。点击“启动新进程”按钮,进入“打开进程”对话框,在“浏览”窗口里选择任意一个应用程序,则能在管理器里直接启动我们所选的进程。(3)终止进程。当我们遇到某些软件在关闭窗口时不能直接关闭,这时可以在进程管理器的“终止进程”里找到该进程并将其终止,这一功能实现的是类似于任务管理器的“进程”选项所具有的功能。(4)退出管理器。当对管理器操作做完毕时,直接点击“退出管理器“按钮则可关闭管理器。三、模块设计与分析本软件实现了进程管理的三大功能,其中主要用到了三大函数,包括获取进程函数“OnGetProcess”、启动新进程函数“Ononrun”、终止进程函数“OnStopProcess”以及退出管理器函数“OnBnClickedCancel”,以下是对每个程序的详细设计:3.1获取进程模块该模块使用到的控件如表1:在IDOK控件上建立事件OnGetProcess(),当用户点击“获取进程”按扭时事件发生,进程管理器可以获取计算机的所有进程。函数源代码如下:voidCShowAllProcessDlg::OnGetProcess()//获取进程的消息处理函数{//TODO:AddyourcontrolnotificationhandlercodehereHANDLESnapshot;Snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//获得某一时刻系统的进程、堆(heap)、模块(module)或线程的快照信息PROCESSENTRY32processListStr;//获得进程的信息processListStr.dwSize=sizeof(PROCESSENTRY32);BOOLreturn_value;return_value=Process32First(Snapshot,&processListStr);//获得系统进程链表中第一个进程的信息m_showlist.DeleteAllItems();inti=0;//itemindex5while(return_value){m_showlist.InsertItem(i,processListStr.szExeFile,0);//插入第一项,从零开始插入CStrings;s.Format(%d,processListStr.cntThreads);//输出线程m_showlist.SetItemText(i,1,s);s.Format(%d,processListStr.th32ParentProcessID);//输出IDm_showlist.SetItemText(i,2,s);s.Format(%d,processListStr.pcPriClassBase);//输出优先数m_showlist.SetItemText(i,3,s);intmemory=processListStr.cntThreads;//写入内存m_ProcessIndex[i]=processListStr.th32ProcessID;//saveIDintoarraytoteminatereturn_value=Process32Next(Snapshot,&processListStr);//获得系统进程链表中下一个进程的信息i++;}}功能实现的流程图如图2所示:图2获取进程流程图3.2启动新进程模块该模块使用到的控件情况如表2:voidCShowAllProcessDlg::Ononrun()//启动新进程的消息处理函数{//TODO:Addyourcontrolnotificationhandlercodehere//加载动态链接库CStringpszDllName=shell32.dll;HINSTANCEhLib=::LoadLibrary(pszDllName);//定义一个句柄,获取的dll文件,是相对路径,和.exe文件在同一个目录下typedefvoid(__stdcall*pRunFileDlg)(HWND,HICON,LPCTSTR,LPCTSTR,LPCTSTR,UINT);pRunFileDlgRunFileDlg;if(hLib==NULL)//若hLib为空,加载失败,hLib不为空,加载成功{return;}RunFileDlg=(pRunFileDlg)GetProcAddress(hLib,(char*)61);CStringname=打开进程;CStringsss=请输入程序,文件夹,文档或其它东西。;LPWSTRwname=newWCHAR[100];LPWSTRwsss=newWCHAR[100];memset(wname,0,sizeof(WCHAR)*100);memset(wsss,0,sizeof(WCHAR)*1
本文标题:进程管理器课程设计
链接地址:https://www.777doc.com/doc-1891025 .html