学校机房中一般安装了一种所谓“在线学习工具”,可以用于老师向学生演示具体操作流程,十分方便和直观。但是很多内容我们已经熟练掌握,并不需要再听他啰啰嗦嗦说上一大通,而这个老师居然使用了全屏切换功能,整个屏幕都被切换到老师的显示器内容,根本没法操作。
这时,我们通常会发现:
Ctrl-Shift-Esc或Ctrl-Alt-Del(Delete)组合键无法调出任务管理器。这通常是由于全屏演示窗口把它遮盖起来了,或者干脆把这几套组合键拦截下来。
Win-X系列组合键失效。原因和上面的类似。
这意味着我们无法通过任务管理器甚至命令行对它进行操作。
另一方面,在任务管理器中对它的操作往往提示拒绝访问。
一般说来,这种情况下我们使用命令行的taskkill命令就可以将这个进程杀死。它的语法是这样的:
> taskkill /f /im taskname
但是对于机房中的这类程序,即使使用了taskkill命令,并带上了/f开关制定强制终止,也仍然会提示拒绝访问。
因此,我们需要一种全新的方式。
下面这一段简述了其原理,可略去不看,不影响阅读。
我们知道,如果使用调试器对一个程序进行调试,当调试器被杀死或手动退出调试器时,被调试的进程会一并退出,无论其优先度,系统权限如何。那么,当把学生端studentmain.exe绑定到调试器并退出时,studentmain.exe就不得不随调试器退出。巧的是,Windows NT自带了一个系统级别的调试器叫做NT Symbolic Debugger(ntsd.exe)。
因此,我们的方法是:
在老师切换前,调出cmd窗口(Win-R然后输入cmd),输入以下命令就可以了:
> ntsd -c -q -pn studentmain.exe