Board logo

标题: 批处理中如何对弹出的对话框进行处理? [打印本页]

作者: sglxy     时间: 2008-4-22 20:24    标题: 批处理中如何对弹出的对话框进行处理?
如题,我编写了一个批处理,为了让不太懂得软件安装的人直接运行就可以安装几个小工具软件,但是某行命令运行后产生的对话框必须按回车键回者鼠标操作才能退出,否则后面的命令行无法执行,如图: 以下是批处理弹出对话框的部分的命令: 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 ]

作者: slore     时间: 2008-4-22 20:39
调用vbs发送 回车键

作者: sglxy     时间: 2008-4-22 20:51
无法调用,对话框后面的命令根本无法运行!为了让这个对话框退出,我使用了 “taskkill /im 绿化.exe /f /t” 来杀进程,但无奈的是根本就没有机会运行这一句命令。 [ Last edited by sglxy on 2008-4-22 at 08:53 PM ]

作者: sglxy     时间: 2008-4-22 21:26
各位老师给指点一下,谢谢!

作者: slore     时间: 2008-4-22 21:50
提前执行 反送回车的VBS……中间要计算延时……

作者: sglxy     时间: 2008-4-22 22:04
请给一个这样的返回车的VBS文件,我自己不会编辑,先谢谢了

作者: slore     时间: 2008-4-22 22:15
调用实例-3秒后发送回车: start wscript //nologo sEnter.vbs 3 sEnter.vbs:
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 ]

作者: dikex     时间: 2008-4-22 22:27
利用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

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

作者: slore     时间: 2008-4-23 10:47
如果不加start命令,说明要等待调用的程序结束后再继续执行代码…… 加start异步执行,调用命令执行完就直接执行下面的语句。 因为路径有空格…… start的第2参数默认是标题的…… 有空格,那么空格前面的部分成标题,后面的成命令……所以就错了…… 所以要start ""

作者: sglxy     时间: 2008-4-23 11:26
我说怎么start后面还加了个引号"",但是引号里面却没有内容呢,原来是这样!,真是太谢谢slore兄了,这次跟你又学了一招,呵呵。