中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-29 15:37
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 在纯DOS中怎样防止用户CTRL+C终止批处理? 查看 1,928 回复 10
楼 主 在纯DOS中怎样防止用户CTRL+C终止批处理? 发表于 2005-08-17 00:36 ·  中国 广东 河源 电信
初级用户
积分 110
发帖 13
注册 2005-08-17 00:35
20年会员
UID 41722
状态 离线
虽然有一个小程序可以做到,但这个程序会跟其它程序冲突,能否通过修改COMMAND.COM来实现这个目的呢?或者有没有其它更好办法?敬请指教!
2 发表于 2005-08-17 13:21 ·  中国 重庆 沙坪坝区 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
21年会员
UID 32861
性别 男
状态 离线
我这里有个小程序不知道可以吗?因为我自己也没用过

[ Last edited by chenhui530 on 2005-8-17 at 13:23 ]
附件
Boff.rar (202 bytes, 下载附件所需积分 1 点, 下载次数: 58)
http://www.msfans.net/bbs/
3 发表于 2005-08-17 14:51 ·  中国 广东 河源 电信
初级用户
积分 110
发帖 13
注册 2005-08-17 00:35
20年会员
UID 41722
状态 离线
谢谢chenhui530,你的这个小程序只能屏蔽CTRL+BREAK,不能屏蔽CTRL+C。
请教高手们还有没有其他办法?
4 发表于 2005-08-17 15:25 ·  中国 重庆 沙坪坝区 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
21年会员
UID 32861
性别 男
状态 离线
可以吧
http://www.msfans.net/bbs/
5 发表于 2005-08-17 15:59 ·  中国 广东 河源 电信
初级用户
积分 110
发帖 13
注册 2005-08-17 00:35
20年会员
UID 41722
状态 离线
Originally posted by chenhui530 at 2005-8-17 15:25:
可以吧


我专门测试过了,的确不行。
6 发表于 2005-08-17 22:07 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
我以前曾贴过一个可以屏蔽Ctrl+C和Ctrl+Break的小程序,不知楼主试过没有?
http://www.cn-dos.net/forum/viewthread.php?tid=15207&fpage=1
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
7 发表于 2005-08-19 19:40 ·  中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
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 的屏幕输出。

以上内容,均属个人推测,需要参考相关资料进行论证。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
8 发表于 2006-02-24 12:14 ·  中国 浙江 杭州 电信
银牌会员
★★★
积分 1,582
发帖 603
注册 2006-02-20 20:26
20年会员
UID 50690
状态 离线
Boff.com在WINME DOS下也只能屏蔽CTRL+BREAK,不能屏蔽CTRL+C
9 发表于 2006-07-27 12:51 ·  IANA 局域网IP(Private-Use)
新手上路
积分 6
发帖 3
注册 2006-06-30 14:39
19年会员
UID 57794
状态 离线
在WinME DOS下只能屏蔽ctrl+C,不能屏蔽ctrl+break
10 发表于 2006-08-01 00:54 ·  中国 香港 环球全域电讯
初级用户
★★
积分 121
发帖 61
注册 2006-04-18 00:09
20年会员
UID 54007
性别 男
来自 HK
状态 离线
能否用break这个指令?
11 发表于 2009-11-14 11:01 ·  中国 广东 珠海 电信
新手上路
积分 5
发帖 3
注册 2009-11-09 05:24
16年会员
UID 154418
性别 男
状态 离线
只能屏蔽ctrl+C,不能屏蔽ctrl+break
论坛跳转: