|
zys
初级用户
积分 110
发帖 13
注册 2005-8-17
状态 离线
|
『楼 主』:
在纯DOS中怎样防止用户CTRL+C终止批处理?
虽然有一个小程序可以做到,但这个程序会跟其它程序冲突,能否通过修改COMMAND.COM来实现这个目的呢?或者有没有其它更好办法?敬请指教!
|
|
2005-8-17 00:36 |
|
|
chenhui530
高级用户
积分 772
发帖 273
注册 2004-10-23
状态 离线
|
『第
2 楼』:
我这里有个小程序不知道可以吗?因为我自己也没用过
[ Last edited by chenhui530 on 2005-8-17 at 13:23 ]
附件
1: Boff.rar (2005-8-17 13:23, 202 bytes, 下载附件所需积分 1 点
,下载次数: 58)
|
http://www.msfans.net/bbs/ |
|
2005-8-17 13:21 |
|
|
zys
初级用户
积分 110
发帖 13
注册 2005-8-17
状态 离线
|
『第
3 楼』:
谢谢chenhui530,你的这个小程序只能屏蔽CTRL+BREAK,不能屏蔽CTRL+C。
请教高手们还有没有其他办法?
|
|
2005-8-17 14:51 |
|
|
chenhui530
高级用户
积分 772
发帖 273
注册 2004-10-23
状态 离线
|
『第
4 楼』:
可以吧
|
http://www.msfans.net/bbs/ |
|
2005-8-17 15:25 |
|
|
zys
初级用户
积分 110
发帖 13
注册 2005-8-17
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by chenhui530 at 2005-8-17 15:25:
可以吧 |
|
我专门测试过了,的确不行。
|
|
2005-8-17 15:59 |
|
|
JonePeng
金牌会员
D◎$ Fαп
积分 4562
发帖 1883
注册 2004-1-19 来自 广东广州
状态 离线
|
|
2005-8-17 22:07 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
7 楼』:
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:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2005-8-19 19:40 |
|
|
martin325
银牌会员
积分 1582
发帖 603
注册 2006-2-20
状态 离线
|
『第
8 楼』:
Boff.com在WINME DOS下也只能屏蔽CTRL+BREAK,不能屏蔽CTRL+C
|
|
2006-2-24 12:14 |
|
|
blueseye
新手上路
积分 6
发帖 3
注册 2006-6-30
状态 离线
|
『第
9 楼』:
在WinME DOS下只能屏蔽ctrl+C,不能屏蔽ctrl+break
|
|
2006-7-27 12:51 |
|
|
tsenix
初级用户
积分 121
发帖 61
注册 2006-4-18 来自 HK
状态 离线
|
|
2006-8-1 00:54 |
|
|
zhiming420
新手上路
积分 5
发帖 3
注册 2009-11-9
状态 离线
|
『第
11 楼』:
只能屏蔽ctrl+C,不能屏蔽ctrl+break
|
|
2009-11-14 11:01 |
|