| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1155 人关注过本帖, 1 人收藏
标题:杀进程的简单办法
只看楼主 加入收藏
tsjoy
Rank: 1
等 级:禁止访问
帖 子:13
专家分:0
注 册:2008-8-5
收藏(1)
 问题点数:0 回复次数:6 
杀进程的简单办法
微软早在MSDOS里就提供了一个调试程序debug。相信在那个年月,很多人都用过它,即使在今天的Windows 2000,Windows XP以及Windows2003里面还能看到它。这个程序从一个侧面反映了微软操作系统的进化历史。

在那个年代,会使用电脑,是一个人科技水平的标志。如果还会使用debug,那就是一个计算机高手的标志了。程序设计中的很多问题都是靠这个小小的工具来解决的。虽然后来出现了很多功能更强大的调试工具,但是debug依然少不了。它是微软操作系统的一个标准配置,哪里都有。高手们用它可以干出很多出乎微软意料的事情,包括制造、传播、预防、清除病毒。

MSDOS最初运行在英特尔的8086 CPU之上。相对于日后的名目繁多的子孙来说,这个CPU只有“实模式”,也就是说一个程序可以控制计算机的任何部件。debug就是为这个“实模式”设计的,因此,使用它就可以控制计算机的任何操作。也只有在那个年代,一个程序员才能体会到计算机是“我的电脑”的含义。

从80286开始,英特尔这个系列的CPU提供了“保护模式”。微软的Windows操作系统主要是为这个模式设计的。顾名思义,系统保护了很多资源,程序员和使用者只能使用系统允许使用的资源。从此,程序员再也不能为所欲为了。debug虽然依然是标准配置,但是它已经名存实亡,干不了什么事情了。在那段过渡时期,虽然人们都在购买80386 CPU的机器,但是依然运行着实模式的MSDOS,根本没有发挥出32位机器的威力。我在这段时间还曾写过自己的32位保护模式的调试工具,这是在保护模式下的为所欲为。现在的计算机仍然可以运行古老的MSDOS,但是,再没有听说有人真正地使用它。

作为debug在新环境下的升级版本,ntsd成了Windows的标准配置。它是一个可以进行动态调试的工具,还支持源代码级的符号调试。但是,它生不逢时,这个时候使用汇编语言的人很少了,而各种高级语言自己的调试工具功能都很强大,没有人想回头使用这种命令行的工具了。于是,今天还有人知道debug,因为它历史悠久,但是很少有人知道替代它的是ntsd。

如今我们用ntsd可以做什么呢?当然它可以调试程序,除此之外,我们还可以做一些其它事情,你会觉得它还是很有用的。

如果你想知道一个进程加载了哪些DLL,那么你就可以用ntsd,利用它的动态调试功能,列出这个进程中加载的所有DLL:

ntsd -pd -p pid

记着用q命令退出ntsd。

系统里有时会有一些进程,我们用taskmgr杀不掉它们。这时,你可以用ntsd:

ntsd -c q -p pid

它的意思是将调试器连接到指定的进程上,然后退出ntsd,这时,那个进程也就跟着退出了。这种方式可以杀掉很多的系统进程,所以要小心使用,要明白你在做什么。

Ntsd.exe的用法:

ntsd -c q -p PID
或者
ntsd -c q pn ImageName

- c是表示执行debug命令,q表示执行结束后退出(quit),-p 表示后面紧跟着是你要结束的进程对应的PID,-pn 表示后面紧跟着是你要结束的进程名(process_name.exe 比如:QQ.exe,explorer.exe 等等,值得注意的是后缀名.exe是不可省略的,否则系统会告诉你“不支持此接口”)

查看pid及进程名,我们可以在任务管理器看,在特殊情况下,也可以使用tasklist命令.

比如我们要结束pid为3212的进程maxthon.exe
那么我们可以在命令提示符中输入:
ntsd -c q -p 3212

ntsd -c q -pn maxthon.exe

注:xp下还有两个好东东tasklist和tskill。tasklist能列出所有的进程,和相应的信息。tskill能查杀进程,语法很简单:tskill 程序名
搜索更多相关主题的帖子: 办法 进程 
2008-11-24 09:10
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 
还有taskkill

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2008-11-24 11:05
C爱好着
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2008-10-31
收藏
得分:0 
你好楼主。我能问下PID是什么意思吗?
有没有办法查找某个进程执行的那个程序啊。
2008-11-24 11:21
hellson
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2008-9-1
收藏
得分:0 
tasklist

春了夏了秋冬了,来了来了又来了
相信我的帖子打开都很快,看我头像就知道了
2008-11-24 15:55
hellson
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2008-9-1
收藏
得分:0 
taskmgr 查看-选择列-pid 前面的就是解释

春了夏了秋冬了,来了来了又来了
相信我的帖子打开都很快,看我头像就知道了
2008-11-24 15:58
cookil
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2008-11-3
收藏
得分:0 
受教了,谢谢楼主。。
2008-11-26 17:36
魏冰112358
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-10-23
收藏
得分:0 
长知识啊 :-)
2008-11-27 08:11
快速回复:杀进程的简单办法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016372 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved