欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    进程管理器技术交底大全报告.docx

    • 资源ID:18153014       资源大小:542.10KB        全文页数:30页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    进程管理器技术交底大全报告.docx

    1、进程管理器技术交底大全报告进程管理器课程设计题目:进程管理器 姓 名 : 正一、需求与功能分析我们的电脑需要我们去了解它的运行状况,掌握和管理它的进程,并对其异常情况给予操作和控制,进程管理器就像是我们了解和控制自己电脑运作的一个窗口,通过这个窗口我们可以了解到电脑所有进程运行状况,并对运行的进程加于管理和控制,正如在本实验中,启动进程管理器后,可以通过”获取进程”功能来获得本计算机启动的进程,以及与该进程相关的信息,其中包括的信息有:进程映像名称,进程开启的线程数,进程的 PID 以及进程的优先数,我们可以通过这些信息来了解计算机中每个进程的使用状况。同时我们可以在进程管理器上选中一个要终止

    2、的的进程,点击“终止进程”功能按钮,该进程被终止执行并退出进程列表,其中还包括了自动刷新的功能,此按钮实现的功能正如我们电脑任务管理器的 “进程”功能,当电脑执行程序不能通过关闭窗口进行正常的关闭时,可以借助此办法来关闭进程。我们还可以通过这个进程管理器来启动新的进程,当我们要在进程管理器里启动新的进程时,只要点击“启动新进程”按键,则会弹出“打开进程”对话框,我们可以通过对话框里的“浏览”窗口选择要打开的新进程,这是任务管理器里没有实现的功能,通过这个功能我们在管理计算机时变得更加灵活便,也使进程管理的功能更加完善。在退出此进程管理器时候,只要选择“退出”功能按钮则可关闭进程管理器,快速退出

    3、管理器的界面。本管理器设计比较简洁,操作灵活,使用简单,可以为我们管理和控制计算机的进程提供了一个简便的法,是我们控制本计算机进程和了解计算机进程情况的良好助手。二、系统总体框架2.1 系统框架图 本系统设计比较简洁,用 MFC 来做界面,实现了四个功能,显示四类与进程相关的信息,具体的总体框架图如图1 所示:图1 总体框架图2.2 各功能模块的详细说明 本系统实现了四大功能,分别包括了:获取进程、启动新进程、终止进程和退出管理器,各功能模块的详细说明如下: (1)获取进程。点击获取进程后,它能自动获取计算机的所有进程,并显示进程的相关信息,其中包括的信息有:进程映像名称,进程开启的线程数,进

    4、程的 PID 以及进程的优先数,通过这一功能,我们能了解进程的相关情况。 (2)启动新进程。点击“启动新进程”按钮,进入“打开进程”对话框,在“浏览”窗口里选择任意一个应用程序,则能在管理器里直接启动我们所选的进程。 (3)终止进程。当我们遇到某些软件在关闭窗口时不能直接关闭,这时可以在进程管理器的 “终止进程”里找到该进程并将其终止,这一功能实现的是类似于任务管理器的“进程”选项所具有的功能。 (4)退出管理器。当对管理器操作做完毕时,直接点击“退出管理器“按钮则可关闭管理器。 三、模块设计与分析本软件实现了进程管理的三大功能,其中主要用到了三大函数,包括获取进程函数 “OnGetProce

    5、ss”、启动新进程函数“Ononrun”、终止进程函数“OnStopProcess”以及退出管理器函数“OnBnClickedCancel”,以下是对每个程序的详细设计: 31 获取进程模块 该模块使用到的控件如表1:在IDOK控件上建立事件OnGetProcess(),当用户点击“获取进程”按扭时事件发生,进程管理器可以获取计算机的所有进程。函数源代码如下: void CShowAllProcessDlg:OnGetProcess() /获取进程的消息处理函数 / TODO: Add your control notification handler code here HANDLE Sna

    6、pshot; Snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); /获得某一时刻系统的进程、堆(heap)、模块(module)或线程的快照信息 PROCESSENTRY32 processListStr; /获得进程的信息 processListStr.dwSize=sizeof(PROCESSENTRY32); BOOL return_value; return_value=Process32First(Snapshot,&processListStr); /获得系统进程链表中第一个进程的信息 m_showlist.Delete

    7、AllItems(); int i=0;/item index 5 while(return_value) m_showlist.InsertItem(i,processListStr.szExeFile,0); /插入第一项,从零开始插入 CString s; s.Format(%d,processListStThreads); /输出线程 m_showlist.SetItemText(i,1,s); s.Format(%d,processListStr.th32ParentProcessID); /输出ID m_showlist.SetItemText(i,2,s); s.Format(%

    8、d,processListStr.pcPriClassBase); /输出优先数 m_showlist.SetItemText(i,3,s); int memory=processListStThreads; /写入存 m_ProcessIndexi=processListStr.th32ProcessID;/save ID into array to teminate return_value=Process32Next(Snapshot,&processListStr); /获得系统进程链表中下一个进程的信息 i+; 功能实现的流程图如图2所示:图2 获取进程流程图3.2 启动新进程模块

    9、该模块使用到的控件情况如表2:void CShowAllProcessDlg:Ononrun() /启动新进程的消息处理函数 / TODO: Add your control notification handler code here /加载动态库 CString pszDllName=shell32.dll; HINSTANCE hLib = :LoadLibrary(pszDllName); / 定义一个句柄,获取的dll文件,是相对路径,和.exe文件在同一个目录下 typedef void (_stdcall *pRunFileDlg)(HWND, HICON, LPCTSTR, L

    10、PCTSTR, LPCTSTR, UINT); pRunFileDlg RunFileDlg; if (hLib=NULL) / 若hLib为空,加载失败,hLib不为空,加载成功 return ; RunFileDlg = (pRunFileDlg)GetProcAddress(hLib, (char *)61); CString name =打开进程; CString sss = 请输入程序,文件夹,文档或其它东西。; LPWSTR wname=new WCHAR100; LPWSTR wsss=new WCHAR100; memset(wname,0,sizeof(WCHAR)*100)

    11、; memset(wsss,0,sizeof(WCHAR)*100); MultiByteToWideChar /多字节字符到宽字符转换函数 (CP_ACP, / ANSI转换时所用的代码页 MB_PRECOMPOSED, / character-type options name, / address of string to map name.GetLength(), / number of bytes in string wname, / address of wide-character buffer 100 ); MultiByteToWideChar /多字节字符到宽字符转换函数

    12、(CP_ACP, / ANSI转换时所用的代码页 MB_PRECOMPOSED, / character-type options sss, / address of string to map sss.GetLength(), / number of bytes in string wsss, / address of wide-character buffer 100 ); if(RunFileDlg!=NULL) RunFileDlg(this-GetSafeHwnd(),NULL,NULL,(LPCTSTR)wname,(LPCTSTR)wsss,0x02); :FreeLibrary

    13、(hLib); /函数运行完毕后,卸载dll文件 功能实现的流程图如图3所示:图3 启动新进程流程图 3.3 终止进程模块 该模块使用到的控件情况表如表1:在IDC_STOP控件上建立事件OnStopProcess (),当用户选中其中一个进程,并点击“终止进打开进程 选择要启动的程序 hLib 是否为空 加载文件 函数运行完毕, 卸载dll 文件 N 结 束 Y 10 程”按扭时事件发生,所选中的进程被终止,进程列表被更新。函数源代码如下: void CShowAllProcessDlg:OnStopProcess() /终止进程的消息处理 / TODO: Add your control

    14、notification handler code here POSITION pos = m_showlist.GetFirstSelectedItemPosition(); /要选择的进程所处的位置 int currentSelect=m_showlist.GetNextSelectedItem(pos); /当前选中的行 if(currentSelect0) /选择某项 CString FileBuffer;/获得进程的可执行文件的文件名 FileBuffer=CString(TEXT(确实要终止进程 )+m_showlist.GetItemText(currentSelect,0)+T

    15、EXT(?); if(AfxMessageBox(FileBuffer,MB_OKCANCEL,0)=IDOK) /先获得该进程句柄,通过进程标识 HANDLE ProcessHandle; ProcessHandle=OpenProcess(PROCESS_ALL_ACCESS,FALSE,m_ProcessIndexcurrentSel ect); /利用数组ID指定的获得存在的一个进程的句柄 if(ProcessHandle) TerminateProcess(ProcessHandle,0); /使指定进程结束 AfxMessageBox(指定进程已终止!); OnGetProcess

    16、();/刷新显示 else AfxMessageBox(系统不允终止指定进程!); else AfxMessageBox(请先选择一个需要终止的进程!,MB_OK); 功能实现的流程图如图4所示: 图4 终止进程流程图图 3.4 退出模块 该模块使用到的控件情况表如表1: 在 I IDCANCEL 控件上建立事件 OnBnClickedCancel(),“退出”按钮响应函数,退出进程管理器。函数源代码如下: void CShowAllProcessDlg:OnBnClickedCancel() /断开该连接按钮的响应函数 IDCANCEL / TODO: 在此添加控件通知处理程序代码 OnCa

    17、ncel(); 四、类的设计与分析4.1、CShowAllProcessApp 类 以 CwinApp 为基类创建 CShowAllProcessApp 子类,它是应用程序的入口和出口,在这里处理一些启动和退出程序时需要读取或写入的设置信息,以及设置一些全局变量。 CShowAllProcessApp 类的定义如下: class CShowAllProcessApp : public CwinApp / 函数头文件中的应用程序, public: CShowAllProcessApp(); /整个程序中的应用程序 / Overrides / ClassWizard generated virtu

    18、al function overrides /AFX_VIRTUAL(CShowAllProcessApp) public: virtual BOOL InitInstance(); /AFX_VIRTUAL / Implementation /AFX_MSG(CShowAllProcessApp) / NOTE - the ClassWizard will add and remove member functions here. / DO NOT EDIT what you see in these blocks of generated code ! /AFX_MSG ; /用户程序中的

    19、每个CCmdTarget 派生类必须提供消息映射以处理消息,用这个函数了来处理用户消息 DECLARE_MESSAGE_MAP() 4.2 CaboutDlg 类 以 CDialog 为基类创建 CAboutDlg 类,CAboutDlg 由 CDialog 派生而来,用来处理进程管理器的主窗口。CLockfileDlg 类的定义如下: class CAboutDlg : public CDialog public: CAboutDlg(); / Dialog Data /AFX_DATA(CAboutDlg) enum IDD = IDD_ABOUTBOX ; /公有类型 /AFX_DATA

    20、 / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / 数据更新 /AFX_VIRTUAL / Implementation protected: /AFX_MSG(CAboutDlg) /AFX_MSG DECLARE_MESSAGE_MAP() / ; 4.3、CshowAllProcessDlg 类 以CDialog 为基类创建CShowAllProcessDlg 子类。

    21、 CLockfileDlg 类的定义如下: class CShowAllProcessDlg : public CDialog / Construction public: DWORD m_ProcessIndex50;/存放所有进程的ID CShowAllProcessDlg(CWnd* pParent = NULL); / standard constructor / Dialog Data /AFX_DATA(CShowAllProcessDlg) enum IDD = IDD_SHOWALLPROCESS_DIALOG ; CListCtrl m_showlist; CSXButton

    22、 m_show; CSXButton m_exit; CSXButton m_stop; /AFX_DATA / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CShowAllProcessDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL / Implementation protected: HICON m_hIcon; / Generated message map fun

    23、ctions /AFX_MSG(CShowAllProcessDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnGetProcess(); afx_msg void OnStopProcess(); afx_msg void OnstartBUTTON();afx_msg void Ononrun(); /AFX_MSG DEC

    24、LARE_MESSAGE_MAP() public: afx_msg void OnBnClickedCancel(); public: afx_msg void OnLvnItemchangedListShow(NMHDR *pNMHDR, LRESULT *pResult); ; 4.4、CSXButton 类 以CButton 为基类创建CSXButton 类,CSXButton 由CButton 派生而来,用于创建控制的按钮,用于界面的美化。CSXButton 类的定义如下: class CSXButton : public CButton / Construction public:

    25、 CSXButton(); / Attributes private: / Positioning BOOL m_bUseOffset; CPoint m_pointImage; CPoint m_pointText; int m_nImageOffsetFromBorder; int m_nTextOffsetFromImage; / ImageHICON m_hIcon; HBITMAP m_hBitmap; HBITMAP m_hBitmapDisabled; int m_nImageWidth, m_nImageHeight; / Color Tab char m_bColorTab;

    26、 COLORREF m_crColorTab; / State BOOL m_bDefault; UINT m_nOldAction; UINT m_nOldState; / Operations public: / Positioning int SetImageOffset( int nPixels ); int SetTextOffset( int nPixels ); CPoint SetImagePos( CPoint p ); CPoint SetTextPos( CPoint p ); / Image BOOL SetIcon( UINT nID, int nWidth, int

    27、 nHeight ); BOOL SetBitmap( UINT nID, int nWidth, int nHeight ); BOOL SetMaskedBitmap( UINT nID, int nWidth, int nHeight, COLORREF crTransparentMask ); BOOL HasImage(); / Color Tab void SetColorTab(COLORREF crTab); / State BOOL SetDefaultButton( BOOL bState = TRUE ); private: BOOL SetBitmapCommon( U

    28、INT nID, int nWidth, int nHeight, COLORREF crTransparentMask, BOOL bUseMask ); void CheckPointForCentering( CPoint &p, int nWidth, int nHeight ); void Redraw(); / Overrides / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CSXButton) public: virtual void DrawItem(LPDRAWITEMSTRUCT lpDra

    29、wItemStruct); /AFX_VIRTUAL / Implementation public: virtual CSXButton(); / Generated message map functions protected: /AFX_MSG(CSXButton) afx_msg LRESULT OnGetText(WPARAM wParam, LPARAM lParam); /AFX_MSG DECLARE_MESSAGE_MAP() ; 六、功能测试 本进程管理器实现了四个功能,加上调试形成五大界面,以下是程序调试后的各功能界面。 1)进程管理器界面如图5 所示:图5 进程管理器

    30、界面2)获取进程界面如图6 所示:图6 获取进程界面3)启动新进程界面如图7 所示: 图7 启动新进程界面4)终止进程界面如图8 所示:图8 终止进程界面5)退出进程界面如图9 所示:图9 退出进程界面七、存在的不足与对策 经过三个星期的课程设计,终于编成了一个进程管理器,我从一个从未接触过MFC 的新手到现在对 MFC 有了一定程度的了解,在此期间,我上网查阅了相关的资料,看网上视频教程和查阅图书馆的相关书籍,并在一些同学的帮助下,终于完成了这份粗糙的作品。通过这次课程设计中,我学到了很多关于MFC 的只是,同时也对VC+有了更深的认识,并对编程有了新的看法。当然,在此过程中我也遇到了很多问题,有的问题经过研究科最终被解决了,有的问题却仍然存在,以下是我做这个实验遇到的问题,以及一些解决的法: 第一、通过本次试验,在“启动新进程”的实现函数里调用了 MultiByteToWideChar,表示把多字节字符转为宽字节字符,它跟 WideCharToMultiByte()函数(宽字节字符转为多


    注意事项

    本文(进程管理器技术交底大全报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开