windows进程管理工具设计与实现(有源程序代码内容摘要:
程序是基于对话框的程序。 首先创建一个基于对话框的应用程序, 在主对话框类 PcsMgrDlg 中添加一个标签控件用于放置任务、进程和系统信息等三个页面 ,如图 3。 图 3 标签控件 子对话框的显示 子对话框的显示与切换 ,是通过标签控件完成的。 当用户点击标签控件上的每一项时 ,分别显示对应页面的相关信息。 要显示三个子对话框 ,需要添加三个对话框到工程中 ,并将 Style 属性设为 Child,Board 设为 None,取 消标题栏。 再分别创建三个对话框的类CTask ,CProcess,CChart,并定义这三个类的变量 : CTask m_Task。 //任务 CProcess m_Process。 //进程 CChart m_Chart。 //图表 并定义一个图像列表变量用于存放标签图标 :CImageList m_ImageList。 接下来就创建子窗口 : ,。 ,。 ,。 当用户选择标签中的一项是 ,为了将对应的对话框在标签控件中显示出来 ,需要在 OnShowWindowBOOL bShow,UINT nStatus 中添加代码相关代码。 这样便可将在个对话框分别显示于标签控件的每个页面中 ,但要实现选择标签的不同项显示不同页面还需在 OnSelchangeMaintabNMHDR* pNMHDR,LRESULT* pResult和 OnSelchangingMaintabNMHDR* pNMHDR,LRESULT* pResult 两函数中添加显示代码。 void CPcsMgrDlg::OnSelchangeMaintabNMHDR* pNMHDR, LRESULT* pResult case 0:。 //任务页面被选中 ,则显示任务页面。 break。 case 1:。 //任务页面被选中 ,则显示进程页面。 break。 case 2:。 //任务页面被选中 ,则显示系统信息页面。 break。 实现菜单 关机、注销、重起菜单命令是通过调用一个 Windows API 函数ExitWindowsEx 完成的。 但在 Windows 98 和 Windows 2020 实现稍有不同。 ExitWindowsEx 函数定义格式 : BOOL ExitWindowsEx UINT uFlags //操作 DWORD dwReason //原因。 在 Windows 98 实现“注销 /重启 /关机”功能将直接调用 ExitWindiwsEx函数 : ExitWindowsExEWX_LOGOFF,0。 // 注销 ExitWindowsExEWX_REBOOT,0。 // 重启 ExitWindowsExEWX_SHUTDOWN,0。 // 关机 在 Windows 2020 实现“注销 /重启 /关机”功能须取得高级权限 : LookupPrivilegeValueNULL,SE_SHUTDOWN_NAME,amp。 [0].Luid。 1。 [0].Attributes SE_PRIVILEGE_ENABLED。 AdjustTokenPrivilegeshToken,FALSE,amp。 tkp,0,PTOKEN_PRIVILEGESNULL,0。 ExitWindowsExFFlag,0。 新建菜单直接调用系统运行对话框 : RUN RunFileDlg。 RunFileDlg RUNGetProcAddresshShell32, MAKEINTRESOURCE61。 开机自动运行可在注册表的主键” HKEY_LOCAL_MACHINE”下的运行子键”Software\Microsoft\Windows\CurrentVersion\Run”下写入和删除一个键 值的方法实现。 提升本程序权限 为了能够终止所有进程 ,需要提升本进程的权限 : 先调用 GetCurrentProcess 函数取得当前进程的句柄。 然后调用 OpenProcessToken 打开当前进程的访问令牌。 接着调用 LookupPrivilegeValue 函数取得你想提升的权限的值。 最后调用 AdjustTokenPrivileges 函数给当前进程的访问令牌增加权限。 相关代码是在 CPcsMgrApp 类的 InitInstance 函数中添加。 任 务列表页面设计 该类实现当前系统运行任务 (有可见窗口的程序 )的管理 ,如查看当前任务 ,添加新任务 ,结束任务 ,切换任务等。 显示任务信息 任务信息包括桌面窗口中可见程序的程序名、路径、运行状态等信息。 在这里我们将在任务列表页面中添加一个列表控件 ,用于将任务信息显示出来 ,如图 4。 图 4 任务列表 要显示桌面窗口中的任务信息 ,首先要一个结构体类型用于存放任务的相关信息 : typedef struct CString strTaskName。 //窗口标题 DWORD dwProcessID。 //进程 ID DWORD dwThreadID。 //线程 ID CString strRunState。 //运行状态 DWORD dwWndHandle。 //窗口句柄 TASK_IFNO,*PTASK_INFO。 获取窗口标题 ,使用 API 标准函数 GetWindowText : char temp[_PATH]。 GetWindowTexthwnd,temp,sizeoftemp 获取进程及线程 ID: TIDGetWindowThreadProcessIdhwnd,amp。 PID。 确定运行状态 : ifSendMessageTimeouthwnd,WM_SYSCOMMAND,NULL,NULL,SMTO_ABORTIFHUNG,1000,NULL strRunState 正在运行。 else strRunState 没有响应。 添加任务信息到数组 : TASK_IFNO ti。 temp。 PID。 TID。 DWORDhwnd。 strRunState。 在任务列表显示每一行信息 : forint i0。 inewCount。 i++ TASK_IFNO ti。 ti。 ,0 !。 ,i。 %d,。 ,1,str。 %d,。 ,2,str。 ,3,。 结束任务 结束任务操作将调用 SendMessageTimeout 函数向要关闭的窗口发送关闭消息 ,如果没有响应则用 TerminateProcess 函数强行终止该窗口进程。 if!SendMessageTimeouthwnd,WM_SYSCOMMAND,SC_CLOSE,NULL,SMTO_BLOCK|SMTO_ABORTIFHUNG,1000,NULL HANDLE hProcess OpenProcess PROCESS_ALL_ACCESS, FALSE,。 //打开进程 TerminateProcesshProcess,1。 //强制终止该窗口进程 CloseHandlehProcess。 切换任务 我们知道 ,Windows 9x/2020 中 SetForegroundWindow 函数当用户正在操作其他。windows进程管理工具设计与实现(有源程序代码
相关推荐
、冶炼班长要认真填写电炉冶炼操作记录卡片。 硅铁冶炼技术操作规程 硅铁冶炼技术操作规程一. 硅铁应呈快状,硅的偏析不大于 4%,小于 2020毫米的数量,不超过总量的 8%。 .冶炼硅铁使用的原料:硅甲猿捉农舍瞳铺茬哥谐鼻嫌赫禽昏跨眶战鲁铃颂雇稗泳支捐滚呼夏帐熙畜积踢溺虎姬淖毒馁斯 舜寇奈搔末湖诅事筏沾谐下炉酷涛依蜗纲幂路彼钩尉 五、正常炉况特征及不正常炉况的处理 硅铁冶炼技术操作规程
.................. 15 软件工程学生学籍管理系统 (至测试计划 ) 软件工程项目开发报告 项目名称:学生学籍管理系统 组 员:陈韵维 ( 09) 官雅贞 (15) 张泽婷 (32) 沈秀香 ( 41) 指导老师:胡锦美 二〇一二年十月十二日第一章 引言 5秘烈看讲姿蜂藤瞅缀殴胶枢匆划蛛勤抽突褪饭炼抗
uClinux移植包 光盘中提供的 , 20200408 版本在很多方面比早先的 20202022版本 完善很多,这也使我们的各种移植工作变得方便很多。 这里我们使用的内核版本是 Linux。 是针对 ARMSYS 的硬件武汉工业学院 2020 毕业论文 第 12 页 共 35 页 平台进行移植的,它对 所做的修改部分保存在uClinux20202001 补丁文件中,供用户参考。 将
交由串口发送模块完成,实现RS232串口流与以太网端口流的透明转换。 串口收发控制模块 实现RS232串口数据流的收/发控制,包括微控制器、MAX232等元件。 微控制器控制串口数据收发,接收串口源数据,封装后写入以太网发送缓冲区打包传输;同时,接收以太网应用层的数据,解析并发送给测控设备。 它不关心通信数据的具体意义,只负责接收/发送,封装/拆封串口帧,提供通用接口。 MAX232
置 ”下拉菜单中的“定义窗户”项,弹出如图所示对话框: 设定好有关参数后点取 “ 定义 ” 按钮,在命令区提示: 回车退出 / 选择窗户所在的建筑物 : 回车退出 / 分类选择 D / 选择要定义为窗户的对象 : 选择要定义为窗户的实体 ,则在实体的中心点与建筑物轮廓线的最近点处生成新的窗户。 如果该点为轮廓线的顶点,命令行会继续提示: 点示窗户朝向 : 点取窗户朝向后