搜档网
当前位置:搜档网 › Au3教程

Au3教程

自动安装脚本制作入门(一)

一、制作目的和原则

说到自动安装,其目的就是模拟手动操作,自动完成对指定按键的点击和输入指定内容,处理可能出现的情况,最终完成程序的安装和设置。

也许有人说这样就明白了,用AutoIt里的MouseClick、Send来完成点击和输入,只要抓好点击的坐标就一切搞定了啊!这当然不能说不是个办法,但做出来的成品可能只能在你自己的电脑上能用,说不定下一次你自己也没法用了。因为每个人的电脑是不一样的,安装窗体在不同分辨率下的位置也是不一样的,如果用这样做的脚本在别人电脑上操作,就会看到鼠标经过N次狂奔后,打开了M个窗口,却没有点到你要的东西(用来整人倒不错)。

我们的目的是让脚本能有效的在其他人电脑上运行安装,处理遇到的情况,完成设置或注册等动作,然后结束。所以制作的原则就是通用、精确和可*

1、尽量少的用鼠标模拟点击的方法,实在用要也要做到保证点击坐标的可*

原因上面都说了,但有时不得已用到点击坐标时怎么办呢,你先想想吧。后面告诉你我的办法

2、尽量少用sleep等待语句,而换用其它准确的时间判断语句

有的朋友喜欢用sleep在一个操作后等待一下,来保证脚本的可*性,其实这却是个不可*的做法。因为每台电脑的性能有所差异,在不同的情况下也有差异,在你的电脑上制作脚本时要停顿5秒的,在一台第旧的电脑上可能要等待20秒也不一定。AutoIt里是有解决方法的,比如winwaitactive,winwaitclose等,再不行自己写判断啦!

3、尽量考虑可能出现的情况

有的程序在安装时会提出一些要求,比如需要更新什么文件或进行什么操作,而且未必在每台电脑上安装时都会出现,这就要我们在做好脚本后多在不同环境测试一下,考虑到一些常见的问题

二、如何学好AutoIt

对于AutoIt我也是个菜鸟,没有什么经验可谈,但我觉得有三点一定要做到

1、充分利用帮助文件。AutoIt的帮助文件写的非常详细,索引和搜索功能使它在查询上非常方便,而且每个命令最后都有例子。有什么问题先找它问问。

有的朋友经常说自己英文不好,其实我的也不怎么样,正好利用这个机会学习一下,再说很多软件在使用时都要用到英文,这方面加强还是有必要的。

2、经常实践。写脚本和编程有几分相似,经常实践,特别在学习新命令时

3、到AutoIt论坛请教。https://www.sodocs.net/doc/3d7454400.html,/forum/index.php毕竟是AutoIt的官方论坛,高手非常多。全都是英文,大家也练习一下吧。

4、开拓思路,变换方法。和编程一样,很多问题不一定只有一个解决方法,普通方法解决不了时还可以多试试其它方法。

三、分析一个典型安装脚本

先让我们来看“极点中文20040813十全大补版”的安装过程第一步“欢迎使用极点中文平台安装向导”

点击“下一步”——使用快捷键Alt+N

此主题相关图片如下:

第二步“使用许可协议”

点击“接受本协议”——使用快捷键Alt+A

点击“下一步”——使用快捷键Alt+N

此主题相关图片如下:

第三步“信息”

点击“下一步”——使用快捷键Alt+N

此主题相关图片如下:

第四步“选择目标文件夹”

假如默认路径

点击“下一步”——使用快捷键Alt+N

此主题相关图片如下:

如果曾经安装过极点,原来的文件夹存在则会出现下面的窗口点击“是”——使用快捷键Alt+Y

此主题相关图片如下:

第五步“选择组件”

假如默认组件

点击“下一步”——使用快捷键Alt+N

此主题相关图片如下:

第六步“选择开始菜单文件夹”

假如默认菜单文件夹

点击“下一步”——使用快捷键Alt+N

此主题相关图片如下:

第七步“准备安装”

点击“安装”——使用快捷键Alt+I

此主题相关图片如下:

等待安装进度

此主题相关图片如下:

第八步“完成”

取消“查看freewb.chm”和“运行输入法调整工具”前的对勾——用TAB切换到对应项,再用点击空格进行取消

点击“完成”——使用快捷键Alt+F

此主题相关图片如下:

上面的步骤已经非常清楚的告诉我们应该怎样做,下面我们只需要把上面的步骤做成脚本。脚本里我们需要用到的命令有:

1、Run(“文件名”)——运行与脚本同一目录下的指定文件

2、WinWaitActive(“窗体标题”,”窗体文本”)——等待指定窗体出现

3、Send(“”)——发送模拟按键。Alt+n用!n表示

1、WinActive(“窗体标题”,”窗体文本”)——判断指定窗体是否激活

下面是完整的脚本

; ---------------------------------------------------------------------------- ; 脚本功能

; 请将下载的"极点中文20040813十全大补版"改名为"JDWB040813.exe"

; 并将其与脚本文件放在同一文件夹下

; ---------------------------------------------------------------------------- run("jdwb040813.exe")

;运行“jdwb040813.exe”

WinWaitActive("安装 - 极点中文输入平台","安装向导")

;等待窗体"安装 - 极点中文输入平台","安装向导"出现

send("!n")

;发送快捷键Alt+N

WinWaitActive("安装 - 极点中文输入平台","使用许可协议")

send("!a")

;发送快捷键Alt+A

send("!n")

WinWaitActive("安装 - 极点中文输入平台","信息")

send("!n")

WinWaitActive("安装 - 极点中文输入平台","选择目标文件夹") send("!n")

if winactive("目录已存在") Then

;如果窗体"目录已存在"是激活状态

send("!y")

;发送快捷键Alt+Y

EndIf

WinWaitActive("安装 - 极点中文输入平台","选择组件")

;如果选择其他安装方式请在这里修改

send("!n")

WinWaitActive("安装 - 极点中文输入平台","选择开始菜单文件夹")

send("!n")

WinWaitActive("安装 - 极点中文输入平台","准备安装")

send("!i")

;发送快捷键Alt+I

WinWaitActive("安装 - 极点中文输入平台","完成极点中文输入平台安装向导") send("{SPACE}{TAB}{SPACE}{TAB}")

;默认状态下“查看freewb.chm”获得焦点,发送空格将勾去掉。

;用TAB切换到下一个复选框

Send("!f")

;发送快捷键Alt+F

; ----------------------------------------------------------------------------

脚本中“;”分号开头的部分是注释。

所有这些命令都能在帮助文件里找到具体介绍。

四、从示例脚本考虑几个问题

1、用Autoit Window Spy精确取得窗体信息

2、 WinWaitActive的使用

3、 Send的使用

4、修改默认路径(ControlSetText和ControlSend)

5、修改默认组件

6、用其它方式按键(ControlClick和MouseClick)

四、从示例脚本考虑几个问题

1、用Autoit Window Spy精确取得窗体信息

在开始菜单里依次选择“程序—AutoIt V3—Autoit Window Spy”。“Autoit Window Spy”是AutoIt附带的一个获取信息的工具。启动后一般它都在最上面,鼠标激活要查看信息的窗体,“Autoit Window Sp y”窗体里将显示激活窗体在鼠标下的信息,如图,这时可以用Ctrl+Alt+F使窗口内容暂停,便于从窗体里复制需要的内容

此主题相关图片如下:

2、 WinWaitActive的使用

WinWaitActive(“窗体标题”,”窗体文本”)——等待指定窗体出现。使用这个命令,在AutoIt默认的情况下,窗体标题可以是实际标题的一部分,比如上面的命令也可以用

WinWaitActive("安装","信息")

但这样在匹配时精确程度也下降了,也可能匹配到另一个标题带“安装”,文本包含“信息”的窗体,所以在使用这个命令时窗体标题尽量用完整标题,最好从Autoit Window Spy,窗体文本选择当前窗体里有代表性的文本。

3、 Send的使用

Send命令发送模拟按键是输出字符的首选。它的应用比较灵活

(1) 组合按键:^表示Ctrl,!表示 Alt,+表示Shift,#表示 Win

比如上面完成时Sen d(“!f”)

(2) 多个Send命令可以合写,一次完成。

(3) Send命令是不能输出中文的,其实Unicode都是不能输出的。

Send命令中有很多特殊按键,请参看帮助文件。

4、修改默认路径(ControlSetText和ControlSend)

如何"选择目标文件夹"中的默认路径?假如我们不希望它安装在系统盘,而要安装在“D:Program FilesF reeWB”。

方法一、上面我们已经知道了Send命令的用法,由于路径框这时是激活状态,这里就可以用到了,Send(“D: Program FilesFreeWB”)

方法二、使用命令ControlSetText ( "窗体标题", "窗体文本", "要设置文字的控件类名或控件精确标题", "需要设置的文字" )

ControlSetText功能是设置窗体里指定控件的文本,不论窗体或控件这时的状态是否激活。注意Control SetText是可以输出中文的。

控件类名可以用Autoit Window Spy取得如上图,经查找输入框的类名为“TEdit1”

上面的要求可写命令为

相关主题