任务管理器之二

    说明:本文在编辑发表时,遇到了一些技术问题,多谢小K老师帮忙解决,才使本文得以顺利发表,在些致谢!
 
 
 
    上回给您说了说“任务管理器的调出”,这回呢,来给您说一说“任务管理器的应用”!不过在临说之前呢,先得给您交代几句。
 
    一个是   sagman友在那篇回复中提出的问题,就是“没有开启‘使用欢迎屏幕’”,同样调出任务管理器后也有“关机”选项,这个在原文中忘了说了,就是XP在默认情况下是开启“使用欢迎屏幕”的,在这呢给您补上这么一句。还有一个是“welfear”友回复中说到的RegisteHotKey问题,那个原本也想在文中提一句的,可是由于自己对这方面了解得不是很多,故而没敢往原文里写,打算等掌握得再深一些时,回过头来再写这段。
 
    话儿就交代这么多,下面呢开始说“应用”,这“应用”的内容很多,一次肯定说不完,咱们就想起什么说什么,尽可能的多涉及一些,一看篇幅差不多了,咱们就打住,下回接着说。 那接下来呀,咱们就开始正式说“应用”!
 
    既然名字是叫“任务管理器”,自然呢是以管理任务为主,那咱们也就从这儿开始说吧!
 
    估计大家最常用得就是“结束任务”了,也就是调出任务管理器后,选择“应用程序”选项卡——在想要结束的任务上右键��再选择“结束任务”即可(如图1),或是选中要结束的任务,直接点击下面的“结束任务”按钮也可以。这个呢只是结束一个任务,如果要想同时结束多个任务,可以在转到“应用程序”选项卡后按住Ctrl键复选多个任务,然后再“结束”就行了!(如图2这时需要注意一点,就是在“应用程序”选项卡中所显示的应用程序,只是那些“当前已开窗口的应用程序”,而像QQ等最小化到系统托盘中的应用程序不会在这里显示。
 
 
(图1 右键结束单个任务)
 
 
(图2 右键结束多个任务)
 
 
    那么这类应用程序就不能通过“任务管理器”来结束了吗?当然不是!只不过在“应用程序”选项卡下不行,需要在“进程”选项卡下去操作。方法嘛,同“结束任务”类似,也是先转到“进程”选项卡下,然后单击选择想要结束的进程,再点击“结束进程”按钮或是通过右键选择“结束进程”就行了。(如图3)那能不能在这儿同时结束多个进程呢,您呢可以自己试一试!
 
 
(图3  右键结束进程)
 
    而就在这儿右键选择时啊,您可能会注意到,紧接着“结束进程”选项下面还有一个“结束进程树”的选项。(如图4)说到“进程树”啊,咱们就得先说一点儿进程的知识了。
 
 
(图4  可见"结束进程树"的选项)
 
     据说啊,“进程是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。”说得再“书本”一点儿,就是“从用户角度来看,进程是应用程序的一个执行过程。从操作系统核心角度来看,进程是为正在运行的程序提供的运行环境。”这么说吧,程序需要占有计算机各种资源才能运行。在“单一程序”下,很容易能够实现,因为它独占计算机全部资源,而当“多道程序”并发执行时,资源的共享和竞争就成为了一个问题。之所以要引入“进程”这个概念,也正是为了解决多个程序并发执行的问题,从而提高系统的资源利用率和吞吐量!一个程序可以对应多个进程,但一个进程只能对应一个程序。不知道这么解释您能不能明白?其实还流行一种用“动静态”来区别两者的说法,不过那个自己感觉有点不好理解,您要有兴趣可以search一下,很容易就能搜到。
 
“进程”理解了,“进程树”也就好理解了。通常一个应用程序运行后,会调用一些进程来执行,这些进程有可能是多级的,那么这一组进程就形成了一个进程树。该应用程序称为父进程,其所调用的对象称为子进程。就像DOS下的“tree,上面的是“父目录”,下面的叫做“子目录”!(如图5)而当我们结束一个进程树后,也就表示同时结束了其所属的所有子进程。所以呀,当您通过“结束进程”无法结束时,可以尝试选择“结束进程树”来试试!
 
 
(图5  "DOS"下TREE命令后部分截图)
 
这里呢,需要说明一点,就是windows自带的任务管理器只能显示系统中当前运行的进程,要想看到咱们说到的“进程树”,可以借助Process Explorer等相关软件(如图6),有关Process Explorer,咱们会在“任务管理器系列”后面的文章中提到,这里先简要说几句,它不仅可以树状方式显示出各个进程之间的关系,即某一进程启动了哪些其它的进程,还可以显示某个进程所调用的文件或文件夹等很多功能。
 
 
(图6  Process Explorer)
 
    咱们在说“调出任务管理器”时,给您介绍了一个命令叫作“taskmgr”,今天说到“结束进程”了,自然还要给您介绍几个“结束进程”的命令。可能大家最熟悉的就是那个ntsd了,这个是从2000开始后系统自带的调试工具,估计大家更多的还是用下面这个用法:ntsd c q p pid。“-c”指得是从命令行传递执行debug命令。“q”就是quit,执行后退出。“pid”则是“process identity”的缩写,也就是“进程标识符”。在cmd下,只需将最后的“pid ”换成您“想要结束的进程pid”,别的照搬就可以了。(如图7)
 
 
 
 
(图7 ntsd c q p pid)
 
至于“进程的pid”,可以在“任务管理器”中看到,但默认情况下,任务管理器不显示这项,需要显示时,可以转到“进程”选项卡下,单击“查看”菜单,然后选择“选择列”这个选项,再勾选“PID(进程标识符)”后“确定”,就可以在下方的“显示框”中看到了。(如图8--图12)
 
 
(图8  默认无"PID")
 
 
(图9  "进程"选项卡下--"查看"--"选择列" )
 
 
 
(图10 "PID(进程标识符)(P)"默认不勾选)
 
 
 
(图11 勾选"PID(进程标识符)(P)")
 
 
(图12  勾选后显示PID)
 
其实ntsd还有另一种用法,这个可能用得人就要相对少一些了。用法如下:ntsd c q pn process_name.exe。其中“process_name.exe”指得是“进程名称”,用时换成实际的名称就行了。其余的,和上面一样。(如图13)相对之下,这个就要方便一些。需要说明的是,有三个进程“ntsd”杀不了,分别是“System”、“smss.exe”和“csrss.exe”,前两个是纯内核态的,而后面那个是Win32子系统,ntsd本身需要它,其它的都没问题。另外,有关ntsd更多的参数可以通过ntsd /? 来查看,那里面讲得要更详细一些!
   
 
(图13  ntsd c q pn 进程名)
 
除了ntsd外,还有一对与之相关的命令,可以说是非常有用,推荐您不妨记一下。一个是tasklist,用于“查看进程”,而且可以直接显示出PID,不像在任务管理器中还要去做相应勾选。(如图14)如果在tasklist后面加上/svc的参数,还可以显示出进程所对应的服务,更方便您找出“害群之马”,(如图15)比如“svchost.exe”进程要没有所对应的服务,那您可就得小心点了!
 
 
 
(图14 TASKLIST)
 
 
 
(图15  TASKLIST /SVC)
 
另一个是taskkill,用于“清杀进程”,用法同ntsd类似,也是可以分别根据pid和进程名来清杀,用法为:taskkill /pid pid号或taskkill /im process_name.exe,您一试就知道了,就不给您多介绍了。(如图16—图18)
 
 
 
(图16 TASKKILL /PID PID号)
 
 
 
 
(图17 taskkill /im 进程名)
 
 
 
(图18 taskkill /im 进程名 结果)
 
网上还流传另外一个命令,叫做“taskill”,同“taskkill”仅有一个字母之差,据说也能杀进程,百度中可以搜索到万余篇之多,可是笔者在几台计算机上试用时均被告知“‘taskill’不是内部或外部命令,也不是可运行的程序或批处理文件”,或许是这些计算机都有问题了吧?!(如图19-图20)最后要提醒您一句啊,不管是“结束进程”还是“结束进程树”,下手前您可得看准了,千万别伤其无辜,要不然真出了事,咱哥们可担不起这责任呀!
 
 
 
(图19  百度搜索“taskill”)
 
 
 
(图20  cmd下用“taskill”)
 
您看,说了这么多,讲得都是“结束进程”的事。而实际上,不仅“结束”有用,“新建”也非常有用。那接下来咱们就说说“新建”吧!这个操作也很简单,就是调出任务管理器后,单击“文件(F)”菜单,选择“新建任务(运行(N)”,这时会弹出一个“创建新任务”的对话框,然后可以在“打开框”中直接录入“任务名”,也可以通过“浏览”按扭找到相应的位置去选择,再然后点击“确定”就可以了。(如图21--图22)怎么样?看着是不是和“开始”下的“运行”比较相似呀!(如图23)
 
 
 
(图21  "文件"--"新建任务(运行...)N")
 
 
 
(图22  弹出"创建新任务"对话框)
 
 
 
(图23 "运行"对话框)
 
这里也要说明两点,一个就是“文件(F)”菜单后面的这个“F”了,估计大家都知道,“F”是“File”的第一个字母,“File”也正是文件的意思。这是个快捷键,通过“ALT+F”也可以调出“文件”菜单!很多地方都有这种功能,就以“任务管理器”为例吧,上面的“选项(O)”(Options)、“查看(V)”(View)、“窗口(W)”(Window)、“帮助(H)”(Help)等菜单都是这个意思,您呢可以留意一下!再一个是在“联网”选项卡下, 从“文件(F)”菜单里找不到“新建任务(运行(N)”这个选项,而在“应用程序”、“进程”、“性能”、“用户”等选项卡下都可以,在这儿给您提上这么一句!(如图24)
 
 
(图24  “联网”选项卡下无“新建任务”)
 
还有一种“新建”的方法,估计用得人也要相对少一些,这就是调出任务管理器后,转到“应用程序”选项卡下,右键“显示框”中空白区,会有一个“新建任务(运行(R)”的选项,后面就不用说了吧,您照方抓药就行了!(如图25)值得一提的是这里的快捷键是R,而咱们上面介绍的那个快捷键是N,两者也都很好理解,一个是NEW(新建),一个是RUN(运行),但是您可以在这儿试一试是ATL+R,还是CTRL+R!
 
 
(图25 “应用程序”选项卡下空白处右键——“新建任务 )
 
也许大家经常会遇到——由于做过某些配置后而需要重启机器的情况,比如msconfig中更改“启动项”后,(如图26)尤其是一些软件安装后,需要重启后才能正常使用。这时候,重启无疑是“最本分”的选择,而像笔者这种“懒人”,就不会“乖乖的”重启了!
 
 
(图26  MSCONFIG中修改过启动项后)
 
那怎么办呢?这就要用到咱们上面说到的“结束”和“新建”了,首先在任务管理器中“结束”名为“explorer.exe”的“进程”,(如图27)这时桌面图标和任务栏会随之消失,不过没关系,您呢别担心,这是正常现象。如果不这样,反倒是不正常了。然后再“新建”一个名为“explorer.exe”的“任务”,(如图28)或者通过“浏览”来找到相应的位置,位置是在系统安装目录下。(如图29)如果您XP系统安装在了C盘,那么位置就是C:\WINDOWS\explorer.exe但这种“投机取巧”有时也不灵,碰上那“不给面儿的”,您还得“老老实实的”重启!顺便说一句,系统安装目录可以用%SystemRoot%来表示。还告诉您,有些时候开机后桌面无内容,也可以通过调出任务管理器后用“新建‘explorer.exe’任务”来解决,这个算是个小技巧吧!
 
 
(图27  结束“explorer”进程)
 
 
(图28  创建“explorer”进程)
 
 
(图29 “explorer”在系统目录下) 
 
    罗哩罗嗦说了一堆,大多都是废话, 无非就是“结束”和“新建”这点事儿,先不说博文质量如何,文字数量已是不少了!那咱们今天就先说到这儿,下回准备给您说说任务的整理、排列、切换、前置等相关内容,也希望您能到时关注!
 
    说明:本文在编辑发表时,遇到了一些技术问题,多谢小K老师帮忙解决,才使本文得以顺利发表,在些致谢!
相关文章
相关标签/搜索