找回密码
 加入
搜索
查看: 2203|回复: 9

请大侠们帮我用另一种方法实现

[复制链接]
发表于 2009-7-6 21:25:06 | 显示全部楼层 |阅读模式
本帖最后由 6wings 于 2009-7-6 21:26 编辑

各位大侠好。是这样的。以下是我写的代码,我个人感觉写得不好,毕竟刚学AU3,这会来这诚心取经的~~哈,我用的基本是sleep语法,但是慢慢地我发现这种方法非常不实用。都知道AU3的自动安装脚本在安装的过程是非常忌讳有键盘鼠标的输入,这将直接影响AU3的脚本执行准确度。我发现有些早年的电脑在运行自动安装的时候有些卡。电脑配置比较早。经常AU3的代码执行得比电脑反应还快一步,导致全盘皆错,代码全配不上软件的安装步骤,我在想有没有一种办法就是用 “如果……那么”这种试探性的语法来判断一个软件装到哪一个步骤了,然后脚本就跟着执行哪一个命令,比如我们 用一个命令来判断某个途径有没有指定的文件存在了,要是存在了,我们就继续执行下面的命令。反之就停下来等待间隔1秒钟再次判断这个途径的文件是否存在了,要是存在了,我们就继续执行下面的命令。反之就这样一直循环下去。我不知道自己表达得清不清楚。呵呵。不过重点还是想让大侠们帮我看看我这个脚本改进的空间在哪里。谢谢啦~~
sleep(3000)
msgBox(32, "温馨提示: 15秒后默认确定","准备好了吗?点击“确定”开始安装“备份软件”和“安全防御软件”,软件将会进行一连串的全自动安装动作,让您轻松到底.请注意:安装期间请您静静等待即可,暂时不要点击鼠标跟键盘,软件会全部自动安装完成!",15)
send("#m")
sleep(1000)
TrayTip("系统提醒:请暂时不要做鼠标和键盘操作!","正在安装“一键GHOST”软件到您的系统,请稍候..",20,1)
sleep(1000)
RUN("C:\tnya\ghost.exe")
WinWaitActive("一键GHOST 安装程序","欢迎使用一键GHOST硬盘版",1)
sleep(1000)
Send("!n")
WinWaitActive("一键GHOST 安装程序","许可协议",1)
sleep(1000)
Send("!n")
WinWaitActive("一键GHOST 安装程序","安装第三方免费软件",1)
sleep(500)
Send("{TAB}{TAB}{TAB}{TAB}{TAB}")
sleep(500)
Send("{SPACE}")
sleep(500)
Send("!n")
WinWaitActive("一键GHOST 安装程序","准备安装",1)
sleep(500)
Send("!n")
WinWaitActive("一键GHOST 安装程序","立即运行",60)
sleep(500)
Send("{TAB}{TAB}{TAB}{TAB}{SPACE}")
sleep(500)
Send("!f")
sleep(500)
TrayTip("系统提醒:请暂时不要做鼠标和键盘操作!","正在安装“360安全卫士”到D:\盘,请稍候..",15,1)
sleep(1000)
run("C:\tnya\360.exe")
WinWaitActive(" 360安全卫士 5.1.1.1004 安装","欢迎使用“360安全卫士”安装向导",1)
sleep(500)
send("!n")
WinWaitActive(" 360安全卫士 5.1.1.1004 安装","最终用户授权协议",1)
sleep(500)
send("!i")
winWaitActive(" 360安全卫士 5.1.1.1004 安装","选择安装位置",1)
sleep(1000)
send("D:\Program Files\360safe")
sleep(500)
send("!i")
winWaitActive(" 360安全卫士 5.1.1.1004 安装","360安全卫士实时保护设置",10)
sleep(1000)
send("!n")
winWaitActive(" 360安全卫士 5.1.1.1004 安装","360安全卫士保险箱安装设置",1)
sleep(1000)
Send("{SPACE}")
sleep(500)
send("!n")
WinWaitActive(" 360安全卫士 5.1.1.1004 安装","正在完成“360安全卫士”安装向导",1)
sleep(1000)
Send("{SPACE}{TAB}{SPACE}")
sleep(1000)
send("{enter}")
sleep(300)
FileDelete(@DesktopDir &"\修复360安全卫士.lnk")
FileDelete(@DesktopDir &"\360软件管理.lnk")
FileDelete(@DesktopDir &"\360保险箱.lnk")
sleep(500)
TrayTip("系统提醒:请暂时不要做鼠标和键盘操作!","正在免疫“U盘病毒”跟“自动播放病毒”,请稍候..",10,1)
sleep(1000)
RUN("C:\tnya\系统工具\自动播放病毒免疫Aimmunity.exe")
WinWaitActive("磁盘免疫工具","请选择要免疫的磁盘:",1)
sleep(500)
send("{TAB}{TAB}{SPACE}")
send("{enter}")
sleep(3500)
Send("{SPACE}")
sleep(500)
Send("{ESCAPE}")
sleep(500)
发表于 2009-7-6 21:27:26 | 显示全部楼层
看了你的自动安装,深感无语,看我的帖子,第2楼,第一楼你已经掌握的差不多了,可以跳过不看
http://www.autoitx.com/forum.php ... id=7644076#pid54393
 楼主| 发表于 2009-7-6 21:29:08 | 显示全部楼层
像有些软件的一些第三方软件安装的勾选,一直找不到直接的方法去掉。就只能用TAB键实现了。增加了发生错误的风险。希望大虾们指出我的缺点 谢谢~~
发表于 2009-7-6 21:44:16 | 显示全部楼层
天呐!建议你多看看别人好的代码吧!
发表于 2009-7-6 21:45:15 | 显示全部楼层
你可以参考http://www.autoitx.com/forum.php ... id=7644076#pid65390我所说的

至于你说的有些软件不能click,得用tab,我也遇到过,如果tab可以用的话就用(尽量少用)
 楼主| 发表于 2009-7-6 21:46:42 | 显示全部楼层
可不可以不要用 WinWaitActive 呢?因为WinWaitActive 有个超时时限,经常软件还没反应过来它就自己超时执行下一个命令了。
发表于 2009-7-6 21:54:03 | 显示全部楼层
可以的,你在需要tab那里不加,不过你得保证使用者不乱动鼠标,最好在脚本前加BlockInput(1),脚本后加BlockInput(0),反正自动安装用不了多久时间。。。
 楼主| 发表于 2009-7-6 22:08:44 | 显示全部楼层
谢谢kn007
比如等待指定窗口被激活的时候再执行命令 的 代码是什么呢?这样会不会好一点,这样就避免用户点到其他东西导致我们安装的软件窗口不是激活状态 而脚本却一直自己执行下去 导致后面的安装全部错掉或者停止。
发表于 2009-7-6 22:11:45 | 显示全部楼层
就是WinWaitActive。。。。。。。。
 楼主| 发表于 2009-7-7 11:11:45 | 显示全部楼层
可以实现说 在安装的时候锁定鼠标的位置吗》?大侠您觉得我写的怎么样?哪里需要改吗?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-27 00:01 , Processed in 0.075226 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表