中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-17 17:02
47,814 主题排行 / 349,907 发帖 / 今日 4 篇 / 48,259 会员排行
DOS批处理 & 脚本技术(批处理室) » 在纯DOS中怎样防止用户CTRL+C终止批处理?
可打印版本  1,998 / 10
第1楼 zys 发表于 2005-08-17 00:36
初级用户 发帖 13 积分 110
在纯DOS中怎样防止用户CTRL+C终止批处理?
虽然有一个小程序可以做到,但这个程序会跟其它程序冲突,能否通过修改COMMAND.COM来实现这个目的呢?或者有没有其它更好办法?敬请指教!
第2楼 chenhui530 发表于 2005-08-17 13:21
高级用户 发帖 273 积分 772
我这里有个小程序不知道可以吗?因为我自己也没用过

[ Last edited by chenhui530 on 2005-8-17 at 13:23 ]

附件
Boff.rar (202 bytes)
第3楼 zys 发表于 2005-08-17 14:51
初级用户 发帖 13 积分 110
谢谢chenhui530,你的这个小程序只能屏蔽CTRL+BREAK,不能屏蔽CTRL+C。
请教高手们还有没有其他办法?
第4楼 chenhui530 发表于 2005-08-17 15:25
高级用户 发帖 273 积分 772
可以吧
第5楼 zys 发表于 2005-08-17 15:59
初级用户 发帖 13 积分 110
Originally posted by chenhui530 at 2005-8-17 15:25:
可以吧


我专门测试过了,的确不行。
第6楼 JonePeng 发表于 2005-08-17 22:07
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
我以前曾贴过一个可以屏蔽Ctrl+C和Ctrl+Break的小程序,不知楼主试过没有?
http://www.cn-dos.net/forum/viewthread.php?tid=15207&fpage=1
第7楼 willsort 发表于 2005-08-19 19:40
元老会员 发帖 1,512 积分 4,432
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 的屏幕输出。

以上内容,均属个人推测,需要参考相关资料进行论证。
第8楼 martin325 发表于 2006-02-24 12:14
银牌会员 发帖 603 积分 1,582
Boff.com在WINME DOS下也只能屏蔽CTRL+BREAK,不能屏蔽CTRL+C
第9楼 blueseye 发表于 2006-07-27 12:51
新手上路 发帖 3 积分 6
在WinME DOS下只能屏蔽ctrl+C,不能屏蔽ctrl+break
第10楼 tsenix 发表于 2006-08-01 00:54
初级用户 发帖 61 积分 121 来自 HK
能否用break这个指令?
第11楼 zhiming420 发表于 2009-11-14 11:01
新手上路 发帖 3 积分 5
只能屏蔽ctrl+C,不能屏蔽ctrl+break
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023