![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 06:39 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [高手请进]关于Ctrl+C和Ctrl+Break的屏蔽问题 |
| 可打印版本 1,940 / 13 |
| 第1楼 fornever | 发表于 2006-09-15 10:08 |
| 初级用户 发帖 35 积分 98 | |
|
[高手请进]关于Ctrl+C和Ctrl+Break的屏蔽问题 搜索了相关主题和实验后,发现那两个工具Boff.com和Breakoff.com在Xp的cmd下是无效的,呵呵不过斑竹也是这么说的.
我想要自己的批处理运行过程中不被Ctrl+C和Ctrl+Break终止,就在XP的cmd环境下 因为我的set /p var=input:后总是被Ctrl+C和Ctrl+Break终止, faint! 希望可以找到解决办法,工具或者修改程序都可以 期待高手的答复! [ Last edited by fornever on 2006-9-16 at 08:36 ] |
|
| 第2楼 fornever | 发表于 2006-09-16 08:31 |
| 初级用户 发帖 35 积分 98 | |
|
晕 没有人回复...
如果可以的话,希望可以给出批处理下的ctrl+c和ctrl+break的写法 高手斑竹谁的说两句啊! |
|
| 第3楼 electronixtar | 发表于 2006-09-16 08:41 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
XP下……不可能的吧,就像Ctrl+Alt+Del一样是系统的不用API和hook估计很难改
|
|
| 第4楼 fornever | 发表于 2006-09-19 21:27 |
| 初级用户 发帖 35 积分 98 | |
|
哪位高手可以给出修改command或者其他程序来实现的方法
汇编应该可以做到吧 |
|
| 第5楼 electronixtar | 发表于 2006-09-19 22:40 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
寒~~~都改cmd.exe了为什么还写批处理哦?直接汇编写exe了嘛,晕
|
|
| 第6楼 NaturalJ0 | 发表于 2006-09-21 20:15 |
| 银牌会员 发帖 533 积分 1,181 | |
|
command /c 或 CMD /C 可以间接的解决部分问题
[ Last edited by NaturalJ0 on 2006-9-21 at 20:16 ] |
|
| 第7楼 fornever | 发表于 2006-09-24 09:16 |
| 初级用户 发帖 35 积分 98 | |
|
用exe 也无所了
我的初衷是用纯批处理,看来不太好实现,还希望高手给出具体解决方法! 或者是这样也行,当用户按下Ctrl+C或者Ctrl+Break的时候自动退出批处理所运行的cmd窗口,就是说这个批处理不是直接双击运行的,而是先打开cmd后,在cmd中运行的。 |
|
| 第8楼 fornever | 发表于 2006-09-28 09:19 |
| 初级用户 发帖 35 积分 98 | |
|
希望看到高手对于这个问题的讨论,就算得不到解决也是有价值的!
|
|
| 第9楼 redtek | 发表于 2006-09-28 09:30 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
一定要禁掉Ctrl+C和Ctrl+Break键这么重要?要做哪方面的批处理?
|
|
| 第10楼 fornever | 发表于 2006-09-28 09:40 |
| 初级用户 发帖 35 积分 98 | |
|
希望别人按我批处理的流程运行,不希望被异常中断掉.
|
|
| 第11楼 electronixtar | 发表于 2006-09-28 09:44 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
我认为cmd只是windows一个程序而已,不可能屏蔽的。批处理只是一个对cmd的“建议“,而不是”命令“
|
|
| 第12楼 redtek | 发表于 2006-09-29 11:35 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
我试了一下,先用WINDOWS兼容性设置CMD.exe强制兼容WIN98,但BREAK无效。
然后如下做两个批处理,这两个批处理互相CALL,不管按多少次CTRL+C, 只要你CTRL+C中断一个批处理,虽然当前这个批处理被中断了,但它是被CALL的, 所以又返回了调用它的那个批处理。 如果这两个批处理之间在CALL以前和CALL的时候都加上参数, 理论上就应该知道中间这一段批处理是不是被人为的中断了, 如果被人为的中断了,那么 例: 请输入: (如果这地方被中断了) (代码区赋值) (那么在这里是不会被人工赋上值的, 所以,在这后面的CALL A.BAT 参数 是不会带过去的,所以只要那个被CALL的批处理发现无参数, 就一定是我CALL别人时它中断了我的批处理,然后就可以变向解决了。 (但,如果对方强行用鼠标关掉CMD的WINDOWS窗口,那没折) 我下面的试验仅仅是试验,并没带参数,理论上是否行不太清楚:) |
|
| 第13楼 redtek | 发表于 2006-09-29 11:53 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
如果是一个名为 MAIL.BAT 它是主批处理,
MAIL. bat 里CALL 用于接授用户输入数据的批处理 A.BAT, 在A.BAT内 SET /P REDTEK= 在取用户输入数据时如果用户不输入就按CTRL+C想中断, 那么……………… (哈哈,行不通,A.bat被中断后它一定会回到MAIL.bat,所以不好办。 ========= 这个解决方法决对可以 ============== 即然我们知道了A批处理被中断后会回来,所以只要我们不让它回来!!! 为说这想法时举例方法,暂用中文名举例子,省得来回“换算”。 ------------------ MENU.BAT (用于总批处理主调用者) 监控.BAT (用于循环监控的批处理,用户不输入数据就老让它输入) 取用户输入.BAT (用于取用户输入数据的批处理) ----------------- 由 MENU.BAT 初始化一些东东,调用 监控.BAT , 为什么?就是想让 “监控.BAT“ 来 CALL “取用户输入.BAT" , 只有这样,用户如果CTRL+C想中断不想输入数据, 那么这个 “取用户输入.bat” 就一定会回到它的调用者那里(就是“监控.BAT“)。 哈哈…… 当 “取用户输入.BAT“ 回来了,但是,它是真的正常回来了吗? 怎么知道它正常回来的,用户是正常输入数据了? 回为 “取用户输入.bat“ 如果是正常返回调用者,就会带参数回来。 我们适先在 "取用户输入.bat“ 批处理的结尾还让它CALL它的调用者(就是死CALL循环), 但是,CALL是带参数的,带用户输入的参数。 互相CALL又怎么能正常退出返回到总MENU.bat呢? :GOGO 指向最后没有CALL的地方就算是“自然”的退出方式, 既然是自然的退出方式,回到了调用者“监控那里”或“取用户输入.BAT“那里, 当然就可以还是用GOTO来指向正常结束,最后终会回到MENU.BAT (令:如果用户玩命按CTRL+C怎么办?我不知道返复CALL是不是有一个限制,不过,如果用户既然是这么让人讨厌,那么你可以使出格了它硬盘~! …………大概就是这意思,我晕了!!!! 只能起到暂时让用户输入一部分数据, 我晕了,你自己试吧~:) |
|
| 第14楼 zhengguobin | 发表于 2006-09-30 09:24 |
| 新手上路 发帖 1 积分 2 | |
|
有没有方便快捷的方法?
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |