中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 请教大家一个问题 上一主题 | 下一主题
hanbsome
初级用户





积分 36
发帖 14
注册 2006-4-29
状态 离线
『楼 主』:  请教大家一个问题

大家好,现向高手求一批处理。先假如我要安装e:\123.exe  123.exe文件是一个windows的安装文件,在安装的过程中,会要求点Next  Yes  还有确定这样的过程,请问用批处理文件 怎样来实现呢,完全不需要人手动点鼠标或者按键盘
谢谢大家了,

2006-4-29 15:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 2 楼』:  

你的要求单独的批处理是完成不了的,因为批处理程序不能提供按键输入,例如你说的实现点击NEXT按钮之类的(总之我是不知道),不过能够借助VBS脚本来实现你的要求,不知道LZ意见如何?

2006-4-29 15:34
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
hanbsome
初级用户





积分 36
发帖 14
注册 2006-4-29
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by bagpipe at 2006-4-29 15:34:
你的要求单独的批处理是完成不了的,因为批处理程序不能提供按键输入,例如你说的实现点击NEXT按钮之类的(总之我是不知道),不过能够借助VBS脠...

如果用VBS脚本能够实现的话,也能解决问题,请赐教,。不胜感激

2006-4-29 16:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 4 楼』:  

例:
With Wscript.CreateObject("Wscript.Shell")
    .run "notepad"                '运行记事本
    Wscript.Sleep 500                '等待半秒
    .SendKeys "D~"                '按下D键及回车,~表示回车。
    Wscript.Sleep 500               
    .SendKeys "~O~"               
    Wscript.Sleep 500               
    .SendKeys "~S"
End With
根据你的要求,你只需要把notepad更改为e:\123.exe,然后发送回车键就行了,如果默认tab停留位不在next按纽上的话则需酌情发送tab键盘。

2006-4-29 16:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hanbsome
初级用户





积分 36
发帖 14
注册 2006-4-29
状态 离线
『第 5 楼』:  

谢谢 bagpipe和版主 我现在先测试一下,再次谢谢你们

2006-4-29 17:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hanbsome
初级用户





积分 36
发帖 14
注册 2006-4-29
状态 离线
『第 6 楼』:  

With Wscript.CreateObject("Wscript.Shell")
    .run "notepad"                '运行记事本
    Wscript.Sleep 5000                '等待半秒
    .SendKeys "D~"                '按下D键及回车,~表示回车。
    Wscript.Sleep 5000               
    .SendKeys "~O~"               
    Wscript.Sleep 30000               
    .SendKeys "~S"
End With

再次请教版主  我将时间改为5秒,连续按两次回车键以后,安装过程已经能够自动的安装完成,最后一个时间我改成了30秒,因为安装过程大概需要20秒。,希望他能够在安装完成后在执行一次回车。这样程序就会自动重起系统,为何我改成30秒的时间了依然不执行最后的那一次呢,

2006-4-29 17:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hanbsome
初级用户





积分 36
发帖 14
注册 2006-4-29
状态 离线
『第 7 楼』:  

不好意思。对VBS脚本一窍不通   麻烦二位了,谢谢,再次感谢

2006-4-29 17:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 8 楼』:  

可能是你在等待的过程中激活了别的窗口导致当前窗口失去焦点的缘故吧。
你可以在每次发送按键前先激活该窗口,方法为:
WshShell.AppActivate "标题内容"
例如:
With Wscript.CreateObject("Wscript.Shell")
    .run "notepad"                '运行记事本
    Wscript.Sleep 500                '等待半秒
    .SendKeys "D~",5                '按下D键及回车,~表示回车。
    Wscript.Sleep 500               
    .SendKeys "~O~"               
    Wscript.Sleep 10000       
    .AppActivate "无标题 - 记事本"
    .SendKeys "~S"
End With


2006-4-29 17:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 9 楼』:  

这个得根据你安装程序的步骤来定,只能给你个雏形你自己来修改,因为我们也不知道你到底是安装什么样的程序,而安装程序又分几步,所以我只能给你个实例,你按照实例来修改。下面是一个安装CCLEANER软件的脚本,http://www.ccleaner.com/ccdownload.asp这个是程序下载,这个工具不错,我已经用了2年左右了,是个清理磁盘垃圾的小程序,进入上面的页面,点击“Alternative Download ”就可以下载了,下面是VBS代码:

option explicit
dim bagpipe,hi,ok
set bagpipe=createobject("wscript.shell")
hi=inputbox("输入你要执行程序的完整路径~~","别写错了啊,要不可不成的!","程序的完整路径")
set ok=bagpipe.exec(hi)
with bagpipe
wscript.sleep 1000
.appactivate ok.processid
.sendkeys "{ENTER}"
wscript.sleep 1000
.sendkeys "{ENTER}"
wscript.sleep 1000
.sendkeys "{ENTER}"
wscript.sleep 1000
.sendkeys "c:\test" '这个是改变了程序安装的默认路径为c:\test
wscript.sleep 1000
.sendkeys "{TAB 3}"
wscript.sleep 1000
.sendkeys "{ENTER}"
wscript.sleep 1000
.sendkeys "{ENTER}"
wscript.sleep 6000
.appactivate ok.processid
.sendkeys "{ENTER}"
end with

2006-4-30 14:03
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: