一、工具准备于简介
1、 2、AutoIt3
AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件,它被设计用来在Windows GUI(用户界面)中进行自动操作。通过它可以组合使用模拟键击、鼠标移动和窗口/控件操作等来实现自动化任务,而这是其它语言所无法做到或尚无可靠方法实现的(比如VBScript和SendKeys)。 AutoIt 最初是为PC(个人电脑)的“批量处理”而设计,用于对数千台PC进行(同样的)配置,不过随着v3版本的到来它也很适合用于家庭自动化和编写用以完成重复性任务的脚本。 AutoIt 可以做的事:
SciTe是一个很好的编辑器,经过JdeB修改后非常适合编写AutoIt脚本。 主要功能改进如下: Shift+F1 - 弹出窗口,显示AutoIt3的命令及详细解释。双击或者在命令上回车即能将命令插入脚本。 Ctrl+Shift+F5 - 运行Tylo的 Au3Check程序检查脚本有无错误,并运行。 Alt+F6 - 运行Larry的(ScriptWriter)脚本记录器,记录鼠标和键盘的操作并生成AutoIt脚本。 Ctrl+F6 - 运行Larry的AU3_Spy程序检测窗体的文本,控件的名称等。 Ctrl+Shift+F7 - 运行Tylo的 Au3Check程序检查脚本有无错误,并生成脚本。 另外此编辑器还有自动完成命令,自动缩进,语法提示,运行脚本,停止脚本,生成EXE等功能。 汉化: 下载SciTE Edito,然后加载语言文件就可以实现汉化了。 可以在SciTE Editor的官方网站下载到{zx1}版的语言文件。 官方页面: 直接下载文件: 使用方法:将下载到的文件更名为locale.properties,放到SciTE Editor的安装目录。再次打开SciTE Editor就是中文的了。 注意: 如果您使用的操作系统是中文的(这里应该没有不是的吧!),请做如下操作,保证您顺畅的编辑中文。 如果未汉化,请在SciTE Editor中打开,Options-Open Global Options File, 1、充分利用帮助文件。AutoIt的帮助文件写的非常详细,索引和搜索功能使它在查询上非常方便,而且每个命令{zh1}都有例子。有什么问题先找它问问。 三、几个常用的命令简介 1、Run(“文件名”)——运行与脚本同一目录下的指定文件 2、WinWaitActive(“窗体标题”,”窗体文本”)——等待指定窗体出现 3、Send(“”)——发送模拟按键。Alt+n用!n表示 4、WinActive(“窗体标题”,”窗体文本”)——判断指定窗体是否xx 5、ButtonNN 后面的NN表示控件名编号 ControlClick ( "窗口标题", "按钮文本描述", "ButtonNN") 相当于用鼠标点击一下,此窗口中的ButtonNN按钮。 ControlCommand ( "窗口标题", "按钮文本描述", "ButtonNN", "UnCheck", "" )此句作用是不选择此复选框。 ControlCommand ( "窗口标题", "支按钮文本描述", "ButtonNN", "Check", "" )此句作用是选择此复选框,即打上勾。 ControlCommand("窗口标题","", "ComboBoxNN","SelectString", '下拉框或列表框内容') 等等。更多内容可以参看说明文件。 四、下面我们以MathType 5.2c的安装为例子,简单介绍脚本的制作。 1、双击安装文件,然后会弹出如下安装选项
通过Autoit Window Spy工具获得窗体详细信息,具体操作: 这一步的命令为: 2、继续,到了这一步,要填写注册信息 这一步的完整命令为: 3、如果不想改动,直接下一步。
这一步的命令为: 4.单击ok即可。
这一步的命令为:
3、AutoIt脚本编辑器SciTE Editor
JdeB制作的Scite4autoIt3.exe是专用于AutoIt编写的,因此很多功能很贴近我们编写脚本。
缺点:
对Unicode字符(我们用汉字)支持不好,并非不能操作,而是汉字被显示为两个光标位置,删除时也要删除两次,这对我们中国人操作还是有些不方便,当然习惯也就好了,但这小小的问题并不影响它功能的强大。
如果已经汉化,请在SciTE Editor中打开,选项-打开全局设置文件,
然后查找code.page,将其设置为936,即code.page=936,如果已经设置为其它值,请删除或在行头用#注释掉。同样的方法查找character.set,将其设置为132,即character.set=132。
二、如何快速掌握教本制作
有的朋友经常说自己英文不好,其实我的也不怎么样,正好利用这个机会学习一下,再说很多软件在使用时都要用到英文,这方面加强还是有必要的。
2、经常实践。写脚本和编程有几分相似,经常实践,特别在学习新命令时
3、到AutoIt论坛请教。毕竟是AutoIt的官方论坛,高手非常多。全都是英文,大家也练习一下吧。
或者取这个论坛也不错,就是人气稍微差了点
4、开拓思路,变换方法。和编程一样,很多问题不一定只有一个解决方法,普通方法解决不了时还可以多试试其它方法。
在开始菜单里依次选择“程序—AutoIt V3—Autoit Window Spy”。“Autoit Window Spy”启动后一般它都在最上面,鼠标xx要查看信息的窗体,“Autoit Window Spy”窗体里将显示xx窗体在鼠标下的信息,如图,这时可以用Ctrl+Alt+F使窗口内容暂停,便于从窗体里复制需要的内容。
可以看到窗体的标题为:“MathType 5.2c - InstallShield Wizard”,可见窗体文本我们可以取:“License Gran ”
小写字母a下有横线,可以用alt+a代替鼠标操作。选择后,灰色按钮xx,按回车即可。
run("MathType52Setup.exe")
WinWaitActive("MathType 5.2c - InstallShield Wizard","License Grant")
Send("!a")
send("{enter}")
从图中,我们可以看到鼠标所在的控件名称为“edit1”,内容为“user”,可以通过ControlSend命令实现自动填写,同理可以填写其他注册信息,然后回车即可进入下一步。
WinWaitActive("MathType 5.2c Setup","&Unlock MathType")
ControlSend("MathType 5.2c Setup","","Edit1","user")
ControlSend("MathType 5.2c Setup","","Edit2","user")
ControlSend("MathType 5.2c Setup","","Edit3","user")
ControlSend("MathType 5.2c Setup","","Edit4","MTWE521-011740-7sdwr")
send("{enter}")
问:如何改默认路径?
答:详见(下)篇:修改默认路径(ControlSetText和ControlSend)
这里我们为了方便,直接按照默认(在实际安装中,我们会发现,如果存在同名空文件夹,安装将会中断,在后面我们会详细讨论这个问题),回车即可。截图里的信息表明,我们还可以用ControlClick实现模拟鼠标点击,在此不在赘述。
WinWaitActive("MathType 5.2c Setup","Click OK to install MathType")
Send("{enter}")
WinWaitActive("Installation Complete","")
ControlClick("Installation Complete","",1)
完整的脚本:
Opt("WinWaitDelay",100)
BlockInput(1)
If FileExists(@ProgramFilesDir&"\MathType\MathType.exe") Then;;;判断程序是否安装过,如果安装则退出!
MsgBox ( 4096, "安装提示", "你已经安装了Mathtype", 2 );;;信息窗口
Exit
EndIf
run("MathType52Setup.exe")
WinWaitActive("MathType 5.2c - InstallShield Wizard","License Grant")
Send("!a")
send("{enter}")
WinWaitActive("MathType 5.2c Setup","&Unlock MathType")
ControlSend("MathType 5.2c Setup","","Edit1","user")
ControlSend("MathType 5.2c Setup","","Edit2","user")
ControlSend("MathType 5.2c Setup","","Edit3","user")
ControlSend("MathType 5.2c Setup","","Edit4","MTWE521-011740-7sdwr")
send("{enter}")
WinWaitActive("MathType 5.2c Setup","Click OK to install MathType")
Send("{enter}")
If WinWaitActive("MathType 5.2c Setup","MathType does not exist") Then
send("!y")
EndIf
ControlClick("MathType 5.2c Setup","是(&Y)","Button1")
send("!Y")
WinWaitActive("Installation Complete","")
ControlClick("Installation Complete","",1)
BlockInput(0)
经验之谈(老生长谈,节改自《自动安装教本制作入门》)