刚才在网上搜东西,发现了一个命令——ntsd,可以结束进程。当然我们可以编写一个程序来执行这个命令: *********************************************************** #include<windows.h>void main(){ system("ntsd -c q -pn explorer.exe");} *********************************************************** 短短3行代码就让我不得不重启电脑,呵呵。因为它结束了进程 explorer.exe 看不到桌面了。 下面来看看ntsd命令的具体用法: ntsd从Windows 2000开始就是系统自带的进程调试工具,在system32目录下。NTSD的功能非常的强大,用法也比较复杂,但如果只用来结束一些进程,那就比较简单了。在Windows中只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。lsass.exe也不要杀掉,它是负责本地账户安全的。被调试器附着的进程会随调试器一起退出,所以可以用来在命令行下终止进程。 方法一:利用进程的PID结束进程 命令格式:ntsd -c q -p pid 命令范例: ntsd -c q -p 1332 (结束explorer.exe进程) 范例详解:explorer.exe的pid为1332,但是如何获取进程的pid呢?在CMD下输入TASKLIST就可以获取当前任务管理器所有进程的PID。或者打开任务管理器,在菜单栏,选择“查看”—“选择列”,在打开的选择项窗口中将“PID(进程标识符)”项选择钩上,这样任务管理器的进程中就会多出PID一项了。(PID的分配并不固定,是在进程启动是由系统随机分配的,所以进程每次启动的进程一般都不会一样。)方法二:利用进程名结束进程 命令格式:ntsd -c q -pn ***.exe (***.exe 为进程名,exe不能省) 命令范例:ntsd -c q -pn explorer.exe 另外的能结束进程的DOS命令还有taskkill和tskill命令: taskkill: 命令格式: taskkill /pid 1234 /f ( 也可以达到同样的效果。) 描述: 这个命令行工具可用来结束至少一个进程。 可以根据进程 id 或图像名来结束进程。 参数列表: /S system 指定要连接到的远程系统。 /U [domain\]user 指定应该在哪个用户上下文 执行这个命令。 /P [password] 为提供的用户上下文指定 密码。如果忽略,提示输入。 /F 指定要强行终止 进程。 /FI filter 指定筛选进或筛选出查询的 的任务。 /PID process id 指定要终止的进程的 PID。 /IM image name 指定要终止的进程的 图像名。通配符 '*' 可用来指定所有图像名。 /T Tree kill: 终止指定的进程 和任何由此启动的子进程。 /? 显示帮助/用法。 Tskill 结束进程。 TSKILL processid | processname [/SERVER:servername] [/ID:sessionid | /A] [/V] processid 要结束的进程的 Process ID。 processname 要结束的进程名称。 /SERVER:servername 含有 processID 的服务器(默认值是当前值)。 使用进程名和 /SERVER 时,必须指定 /ID 或 /A /ID:sessionid 结束在指定会话下运行的进程。 /A 结束在所有会话下运行的进程。 /V 显示正在执行的操作的信息