Board logo

标题: 在纯DOS中怎样防止用户CTRL+C终止批处理? [打印本页]

作者: zys     时间: 2005-8-17 00:36    标题: 在纯DOS中怎样防止用户CTRL+C终止批处理?

虽然有一个小程序可以做到,但这个程序会跟其它程序冲突,能否通过修改COMMAND.COM来实现这个目的呢?或者有没有其它更好办法?敬请指教!
作者: chenhui530     时间: 2005-8-17 13:21
我这里有个小程序不知道可以吗?因为我自己也没用过

[ Last edited by chenhui530 on 2005-8-17 at 13:23 ]
附件 1: Boff.rar (2005-8-17 13:23, 202 bytes, 下载附件所需积分 1点 ,下载次数: 58)

作者: zys     时间: 2005-8-17 14:51
谢谢chenhui530,你的这个小程序只能屏蔽CTRL+BREAK,不能屏蔽CTRL+C。
请教高手们还有没有其他办法?
作者: chenhui530     时间: 2005-8-17 15:25
可以吧
作者: zys     时间: 2005-8-17 15:59


  Quote:
Originally posted by chenhui530 at 2005-8-17 15:25:
可以吧

我专门测试过了,的确不行。
作者: JonePeng     时间: 2005-8-17 22:07
我以前曾贴过一个可以屏蔽Ctrl+C和Ctrl+Break的小程序,不知楼主试过没有?
http://www.cn-dos.net/forum/viewthread.php?tid=15207&fpage=1
作者: willsort     时间: 2005-8-19 19:40
Re All:

      刚才经过测试, chenhui530 兄提供的 Boff.com(大小173B) 和 JonePeng 兄提供的 BreakOff.com(大小1476B) 均能在 MS-DOS 6.22 和 MS-DOS 7.10 平台下正常工作,但均无法在WinXP的命令行下正常工作,包括CMD和COMMAND。

      Boff.com 应该是通过修改 Ctrl+Break 的中断调用地址来实现屏蔽的,它不驻留内存,也无法恢复 Ctrl+Break 原来的中断地址,要重新启用 Ctrl+Break 需要重启。因为 Ctrl+C 先是调用键盘中断,再去调用 Ctrl+Break 中断,而并不理会 Ctrl+C 的键盘输入与屏幕输出,所以按下 Ctrl+C 会在屏幕上会显示一个 ^C,但不起 Ctrl+Break 作用。

      BreakOff.com 应该是通过监视键盘并转移的 Ctrl+Break 调用来实现屏蔽的,因此需要驻留内存,它可以通过 Breakoff /q 退出内存驻留,从而恢复 Ctrl+Break 作用。因为它也监视了键盘中断,所以也会屏蔽 ^C 的屏幕输出。

      以上内容,均属个人推测,需要参考相关资料进行论证。
作者: martin325     时间: 2006-2-24 12:14
Boff.com在WINME DOS下也只能屏蔽CTRL+BREAK,不能屏蔽CTRL+C
作者: blueseye     时间: 2006-7-27 12:51
在WinME DOS下只能屏蔽ctrl+C,不能屏蔽ctrl+break
作者: tsenix     时间: 2006-8-1 00:54
能否用break这个指令?
作者: zhiming420     时间: 2009-11-14 11:01
只能屏蔽ctrl+C,不能屏蔽ctrl+break