浅谈Visual C++系统进程管理器的开发

更新时间:2023-09-21 17:58:01 阅读量: 工程科技 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

浅谈Visual C++系统进程管理器的开发

[摘要]Visual C++是Microsoft公司开发的一个功能非常强大的可视化开发工具。本文介绍了利用Visual C++开发系统进程管理器的基本理论、设计思想及设计步骤,帮助广大程序设计爱好者熟悉和掌握Visual C++程序开发,起到抛砖引玉的作用。

【关键词】Visual C++;进程;CreateToolhelp32Shapshot();TerminateProcess()

1.引言

在现代的操作系统中,进程是一个极其重要的概念,操作系统及操作系统中应用和程序的正常运行离不开进程的创建和管理。进程是一个开始执行但是还没有结束的程序,是可执行文件的具体实现。其工作原理为当应用程序被系统调用到内存以后,系统会给程序分配一定的资源,然后进行一系列的复杂操作,使应用程序变成进程以供系统调用。系统中只有进程而没有应用程序。

为了区分各个不同的进程,系统给每一个ID以便识别。为了充分利用资源,系统还对进程区分了不同的状态,将进程分为新建、运行、阻塞、就绪和完成5个状态。新建表示进程正在被创建;运行是进程正在运行;阻塞是进程正在等待某一个事件发生;就绪表示系统正在等待CPU来执行命令;而完成表示进程已经结束了,系统正在回收资源。

因此,实时监控系统中各个应用程序所对应的进程,对于计算机用户来说尤其重要。系统中运行的进程实际上比我们在任务管理器中看到的更多,有些恶意的程序是无法在任务栏和任务管理器中看到的。本文介绍如何显示系统当前运行的所有进程,及如何终止运行的进程。

运行程序,点按钮“获取进程”,则系统当前运行的所有进程名称以及进程对应的ID、涉及的线程数、优先级便显示在列表视图里面了。图1是程序运行界面。

2.程序设计思想

开发系统进程管理器,需要了解两个函数:CreateToolhelp32Shapshot()函数用来获得某一时刻系统的进程、堆(heap)、模块(module)或线程的快照信息;TerminateProcess()函数用来停止某个正在运行的进程。

CreateToolhelp32Shapshot()函数包含于Toolhelp32函数组。Toolhelp32函数级是一组寄存在Kernel32.dll中的WindowsAPI函数,它能够通过快照(Snapshot)获得驻留在系统内存中的进程表、线程表、模块表和堆表,并提供函数来枚举系

本文来源:https://www.bwwdw.com/article/f83h.html

Top