1. 简介
autoit是一个使用类似BASIC脚本语言的小工具,用来制作自动完成重复性任务的脚本,比如自动登录qq、登录邮箱、登录游戏客户端等。
特点:
l 语法类似于BASIC,非常简单,初中生绝对可以学会
l 有汉化版本,使用方便
l 帮助文档和函数库丰富
l 网上资料很多,中文论坛和英文论坛非常活跃,疑难杂症容易找到答案
l 支持unicode
l 兼容windows的大多数操作系统
l 支持Vista的UAC访问控制
l 等等
能够做的事情:
l 运行Windows和Dos程序
l 模拟键盘按键,如单击、双击、右键
l 模拟鼠标移动和点击,控制移动速度
l 对窗口创建、移动、调整大小、关闭等操作
l 访问窗口中的控件,如文本框、下拉框,可以获取文本、设置文本、选中等操作
l 配合剪贴板进行复制、粘贴
l 访问外部磁盘的文件,打开、读取、写入、关闭等
l 访问外部数据库,标配是SQLite
l 支持网络通讯协议,如http、ftp、tcp、udp
l 可以访问注册表
l 可以调用Win32的api
l 可以编译成exe文件,方便执行
l 等等
2. 安装
官网是http://www.autoitscript.com/,国内可以访问。
中文论坛是http://www.autoitx.com,只能在晚上10点到10点半之间才能注册。
软件有汉化版本,大家可以选择原版或者汉化版本。
安装后的目录结构如下:
解释一下关键目录及文件含义:
Aut2Exe 文件夹包含如何把脚本文件打包成exe
AutoItX 文件夹含有activeX,用于其他程序通过dll方式使用autoit
Extras 文件夹含有录屏软件,可以录屏回放,可以直接修改录屏的脚本
Au3Info.exe 是一个捕获窗口信息的小工具,非常重要,非常好用
AU3TOOL.exe 是编写脚本的编辑器,非常重要,非常好用
AutoIt3CHS.chm 是汉化的帮助文档,必须通读
UDFs3CHS.chm 是用户自定义函数的帮助文档,还有大量调用win32 api的函数
简历.doc 是汉化作者的简历,不是本人的广告贴
3. 使用
在帮助文档中已经有非常详细的使用说明,我不再重复。
窗口信息工具很有用,如图
实现思路是捕获窗口,然后查找窗口的控件。控件的标识如下定义:
这些内容在小工具中都有体现。因此使用autoit开发,方便就在这里。
一定要注意:被操作的进程重启后,控件的这些标识都会改变。
写脚本的时候有几个易出错的地方:
l 注释使用分号,不是双斜线
l 判断语句使用if …. then …. endif
l 函数定义使用 fun … endfunc
l MsgBox函数有三个参数,一定都要输入
l 字符串拼接使用 “&”
l 退出循环使用ExitLOOP
l 错误信息在@error中
4. 模块开发
写大的程序,一定要分到多个文件,只要有一个是主文件就行。对于一些变量定义,也要放到统一的地方,这都是非常有好处的。
比如我在应用中,就分了很多文件,每个文件不同的功能。有共性的内容放到一个文件中。
项目中有au3文件,是必备的脚本;exe文件是编译后的可执行文件;ini文件是客户端的容易变化的信息,如用户名、密码等;jar文件封装了java调用exe文件的操作。
5. 打包发布
使用au2exe,可以把脚本编译成exe文件。
如果要编译成控制台程序,请勾选最后一项。
6. 常用函数
WinActivate 激活窗口
ControlClick 点击控件的某个位置
MouseMove 移动光标
MouseDown 按下鼠标左键
Sleep 程序睡眠
ConsoleWrite 向控制台输出
Send 发送键盘信息
ControlGetPos 得到控件的坐标位置
ControlCommand 控制文本框、下拉框的文本、选项
常用的调用Win32 api的函数
_WinAPI_GetWindow
7. 结语
autoit可以遍历进程、可以获得句柄。如果想稳定控制程序,需要用到进程和句柄,可以使用Spy4Win工具来配合抓句柄。
在学习和使用autoit的过程中,遇到了很多问题,也查阅了很多资料,以上是我工作心得,抛砖引玉,希望对大家有用。
相信我,使用autoit,可以节省您很多时间。