中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理中如何对弹出的对话框进行处理?
作者:
标题: 批处理中如何对弹出的对话框进行处理? 上一主题 | 下一主题
sglxy
中级用户

MS-DOS爱好者


积分 397
发帖 87
注册 2002-12-15
状态 离线
『楼 主』:  批处理中如何对弹出的对话框进行处理?

如题,我编写了一个批处理,为了让不太懂得软件安装的人直接运行就可以安装几个小工具软件,但是某行命令运行后产生的对话框必须按回车键回者鼠标操作才能退出,否则后面的命令行无法执行,如图:


以下是批处理弹出对话框的部分的命令:
echo.
echo.
%PROGR%\音频处理\音频编辑\绿化.exe  (就是这个文件运行后弹出对话框)
taskkill /im 绿化.exe /f /t
del "%USERPROFILE%\桌面\Adobe Audition 3.0.lnk" >nul 2>nul
exit
... ...

*******************************************

在这种情况下如何才能让这个对话框退出(不用动手的情况下),并继续执行下面的命令?请各位朋友指点指点,先谢谢了!

[ Last edited by sglxy on 2008-4-22 at 09:25 PM ]

2008-4-22 20:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

调用vbs发送 回车键

2008-4-22 20:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sglxy
中级用户

MS-DOS爱好者


积分 397
发帖 87
注册 2002-12-15
状态 离线
『第 3 楼』:  

无法调用,对话框后面的命令根本无法运行!为了让这个对话框退出,我使用了
“taskkill /im 绿化.exe /f /t”     
来杀进程,但无奈的是根本就没有机会运行这一句命令。

[ Last edited by sglxy on 2008-4-22 at 08:53 PM ]

2008-4-22 20:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sglxy
中级用户

MS-DOS爱好者


积分 397
发帖 87
注册 2002-12-15
状态 离线
『第 4 楼』:  

各位老师给指点一下,谢谢!

2008-4-22 21:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

提前执行 反送回车的VBS……中间要计算延时……

2008-4-22 21:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sglxy
中级用户

MS-DOS爱好者


积分 397
发帖 87
注册 2002-12-15
状态 离线
『第 6 楼』:  

请给一个这样的返回车的VBS文件,我自己不会编辑,先谢谢了

2008-4-22 22:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  

调用实例-3秒后发送回车:
start wscript //nologo sEnter.vbs 3

sEnter.vbs:

  Quote:
Wscript.Sleep WScript.Arguments.item(0) * 1000
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Sendkeys "{Enter}"
Set WshShell = Nothing

[ Last edited by slore on 2008-4-22 at 10:19 PM ]

2008-4-22 22:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dikex
高级用户

潜水修练批处理



积分 788
发帖 366
注册 2006-12-31
状态 离线
『第 8 楼』:  

利用start执行程序,再可以利用ping大概定时:
ping 127.0.0.1 /n 10
这个大概是10秒
echo.
echo.
start "" "%PROGR%\音频处理\音频编辑\绿化.exe"
ping 127.0.0.1 /n 10
taskkill /im 绿化.exe /f /t
del "%USERPROFILE%\桌面\Adobe Audition 3.0.lnk" >nul 2>nul
exit




正在潜水修练的批处理小白
2008-4-22 22:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sglxy
中级用户

MS-DOS爱好者


积分 397
发帖 87
注册 2002-12-15
状态 离线
『第 9 楼』:  

(1)、slore兄的调用实例-3秒后发送回车的方法执行成功,非常好用!
(2)、dikex兄的延时杀进程的方法我自己就时过好多次,根本不能执行下一步命令但是dikex兄在"%PROGR%\音频处理\音频编辑\绿化.exe"命令前面加了start "" 就可以正常向下执行,这是什么道理,请指点以下。

对于两位老师的指点,在此表示感谢!!!

2008-4-23 07:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 10 楼』:  

如果不加start命令,说明要等待调用的程序结束后再继续执行代码……
加start异步执行,调用命令执行完就直接执行下面的语句。


因为路径有空格……

start的第2参数默认是标题的……
有空格,那么空格前面的部分成标题,后面的成命令……所以就错了……
所以要start ""

2008-4-23 10:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sglxy
中级用户

MS-DOS爱好者


积分 397
发帖 87
注册 2002-12-15
状态 离线
『第 11 楼』:  

我说怎么start后面还加了个引号"",但是引号里面却没有内容呢,原来是这样!,真是太谢谢slore兄了,这次跟你又学了一招,呵呵。

2008-4-23 11:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: