C#实现的一个任务管理器

这几天看到Process组件,挺感兴趣的,所以做了这么一个东东,到不是为了别的什么,算是熟悉一下Process提供的各种属性和方法吧。程序很简单,得益于Process封装了很多有用的方法,直接调用就可以了,前提当然是你得熟悉哪个属性代表什么意思哪个方法是干吗的啦'。窗体上主要用istView控件来枚举进程及其相关信息,有两个问题还未解决,有高手路过望不惜赐教。
第一个问题是模拟实现longhorn任务管理器的打开进程所在目录时只能打开到进程所在目录的文件夹,还差一步选定进程文件,怎么实现?
另一个问题是程序中利用一个定时器来自动更新进程列表信息,获取系统所有进程信息的这段代码如下:

        //获得当前所有进程信息并填充ListView
        private void GetCurrentInfo()
        {
            processList.Items.Clear();
            myProcess = Process.GetProcesses();
            foreach (Process pr in myProcess)
            {
                pr.Refresh();
                string[] str = {
                                   pr.ProcessName,
                                   pr.Id.ToString(),
                                   pr.TotalProcessorTime.ToString().Substring(0,8),
                                   ((double)pr.WorkingSet/1024).ToString("0.##") + " K",
                                   ((double)pr.VirtualMemorySize/1024).ToString("0.##") + " K",
                                   pr.BasePriority.ToString(),
                                   pr.Responding==true?"正在运行":"失去响应"
                               };
                processList.Items.Add(new ListViewItem(str));
            }
        }

正如上所写,每次更新前先清空listView中的所有项,然后重新获得当前所有进程信息并枚举填充,这样带来的问题是会丢失更新前listview的selectIndex,由此引发其它一系列依赖于selectIndex的操作的问题。有什么好的办法能让ListView不用全部清除而直接更新?

截图: 

代码下载: http://210.29.131.64/person/ml/private/MyTaskManager.rar

时间: 2024-08-22 16:17:43

C#实现的一个任务管理器的相关文章

vc6.0-求大神教我怎样用MFC编一个任务管理器,急急急!!

问题描述 求大神教我怎样用MFC编一个任务管理器,急急急!! 怎么用VC6.0的MFC来实现一个简易的资源管理器 我新建了这样的一个project: 然而并不能看懂注释的意思,不知道要在哪里写些什么!!(就因为这样,网上的源码也看不懂......) 所以,有哪位大神可以依据图片告诉我:在哪个文件里写什么内容(比如:在xxx文件的xxxx部分写xxx),让我有个具体的实现过程的了解!! 有图片示范的就更好了,回答好的加C啊!! 感激不尽!!TT TT TT 解决方案 参考:http://downl

利用c#制作一个任务管理器

问题描述 求一些思路 解决方案 解决方案二:通过Process[]ps=System.Diagnostics.Process.GetProcesses()可以获得当前系统中运行的进程列表.ps[i].ProcessName可以获得进程名等,并可通过ps[i]进行其它管理操作.解决方案三:有源码下载.解决方案四:大凡系统及控制基本上是用Process了

c++-MFC如何获取像任务管理器一样的数据

问题描述 MFC如何获取像任务管理器一样的数据 按照网络上面的一些资源,我已经可以获得了进程的pid和进程名称,不过进程名称是英文的, 然后获取文件路径的时候也只能获得部分文件的路径,,就如图所示, 但是我想获得,,这样的信息,并且可以根据一些关键字(比如腾讯QQ)来强制关闭一些进程. 有没有高手可以来帮帮忙,如果回答的好可以追加 解决方案 Advanced Task Manager in MFC 完全模拟,功能更多,源码也有. 解决方案二: 1.管理员权限 2.添加一个64位兼容程序,64位进

scala实现单例模式

单例模式介绍 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例. 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务:一个系统只能有一个窗口管理器或文件系统:一个系统只能有一个计时工具或ID(序号)生成器.如在Windows中就只能打开一个任务管理器.如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源:

设计模式学习:单例模式

为什么只要一个实例: 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务:一个系统只能有一个窗口管理器或文件系统:一个系统只能有一个计时工具或ID(序号)生成器.如在Windows中就只能打开一个任务管理器.如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源:如果这些窗口显示的内容不一致,则意味着在某一瞬间系统有多个状态,与实际不符,也会给用户带来误解,不知道哪一个才是真实的状

如何查看Chrome浏览器哪些插件耗资源?

  Chrome浏览器是一个多进程浏览器,许多插件都是有自己单独的进程.而且Chrome浏览器也为用户提供了一个"任务管理器"工具,通过这个工具可以看到哪些插件或者扩展占用的内存.CPU.网络等资源的大小. 1.打开"任务管理器"工具的方法 在菜单中选择"工具-> 任务管理器",或者使用快捷键"Shift + Esc"(Win8下). 2.查看插件的所占资源,然后通过"扩展程序"进行"启用&

容器管理必备:掌握工具和技能

当制订容器管理策略时,选择正确的工具只是万里长征迈出了第一步. 那些在云应用开发和应序迁移过程中应用容器技术(例如Docker)的用户很快就会认识到使用容器管理工具的必要性.这些工具能够帮助用户管理容器的运行和规模,并监控容器的性能和安全性. 管理容器可能需要用户付出大量的工作,首先需要考虑的一个问题就是选择一个合适的管理工具.对于基于容器技术的应用程序来说,主要有两种类型的管理工具:容器集群管理器和容器运行管理器. 容器集群管理器 容器集群管理器,主要指Docker Swarm.CoreOS

IOS应用架构思考二(网络图片库)

移动端架构中图片库是非常重要的一环,其实图片库也可以理解为网络库的一种特殊使用模式,为了满足需要,图片库至少要满足以下特点: 提供一个加载入口,通常以UIImageView的类别方法setImageWithURL:...开始 支持异步网络加载图片 支持内存缓存和文件缓存 确保同一张图片不会被重复下载 主流图片格式的解码 著名的优秀关于图片加载的库有: SDWebImage AFNetworking EGOImageLoading 已经年久失修 1. Load入口 关于Load入口方式,一般有两种

Java多线程与并发库高级应用

想快速精通多线程?看这里  http://blog.chinaunix.net/uid-540802-id-4431193.html 什么是线程         线程,是程序执行流的最小单元.是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可以与同属一个进程的其他线程共享进程所拥有的全部资源,一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行.在单个程序中同时运行多个线程完成不同的工作,称为多线程.当自己想