安装程序留下的手工步骤
1998年10月,乔纳森·贝内特为英国一家企业制作Windows NT 4自动部署方案时,发现许多应用程序不支持静默安装,仍要有人在窗口中选择选项、按按钮。他尝试微软ScriptIt,但不同机器速度下的按键时序并不可靠,启动程序时也难以指定所需工作目录。
贝内特于当年圣诞节期间用C语言编写替代工具,首先解决发送按键及控制间隔的问题。AutoIt的起点因而很具体:在已有安装流程里补上只能通过图形界面完成的操作,使批量配置电脑不必逐台重复点击。
1999年1月的构建与公开发布
早期版本日志把1999年1月12日的1.0版列为初始测试构建;同月14日的1.2版条目则记载在WinFiles.com正式发布。这里有两个不同阶段:程序已经编成,与它通过软件下载站向公众提供,并非同一天。
最初的工具提供运行程序、发送按键、等待窗口与调节延迟等命令。1999年2月的1.5版加入鼠标点击,1.6版加入窗口条件判断和跳转,4月的1.8版又增加环境变量、子程序调用等能力。功能是在实际自动化需求中逐项增长的,并非第一版就具备后来全部语言特性。
先等窗口,再发送输入
早期AutoIt脚本是逐行读取的普通文本,以命令名、逗号和参数组织操作。以第二版手册所记录的语法为例,在英文版旧式记事本环境中,三行“Run, Notepad.exe”“WinWaitActive, Untitled - Notepad”“Send, Hello”依次启动记事本、等待目标窗口成为活动窗口,再输入文字。窗口标题必须与实际系统相符。
这个例子的关键是让程序状态决定下一步。仅仅启动应用,并不保证它已准备好接收输入;WinWaitActive把后续按键与活动窗口联系起来。SetKeyDelay还可设置按键之间的毫秒间隔,以适应处理输入较慢的程序。相较盲目连续发送按键,这些操作把等待条件明确写入脚本。
参考:[1]
面向批量部署的工具组合
1999年8月16日发布第二版后,AutoIt继续扩充命令,也出现了AutoItX接口,使其他脚本环境能够利用它的自动化能力。9月11日的2.1版加入Aut2Exe,将脚本转换为能够单独分发的可执行文件;接收电脑不必另外安装原来的AutoIt工具才能运行它。
第二版手册仍把自身定位为简单任务的助手。贝内特建议复杂文本处理、注册表管理等工作交给Windows Script Host或KiXtart,再调用AutoIt操作缺少自动接口的窗口。这种组合保留了已有管理脚本,把模拟人工输入集中在真正需要的地方。
从命令列表走向第三版
大量追加命令也带来维护压力。2001年5月,源代码被改写为C++;贝内特后来回忆,用户对循环和表达式的要求,促使他重新考虑第二版严格的逗号分隔语法。参与社区的Larry曾为缺失功能制作辅助程序,并推动新版本讨论,更多开发者随后加入。
第三版于2003年1月20日开始开发,3月4日提供首个公开预发布二进制版本;3.0.100正式版在2004年2月29日发布。把1999年写成第三版问世,会掩盖中间的语法重构和测试过程。
更大的语言,延续原来的用途
安迪·弗莱斯纳2007年的教程以3.2.4.9版为对象,已通过变量、函数和条件语句讲解系统管理脚本。例如安装两项更新时,可以把程序名放进变量,再由函数依次调用RunWait;更换文件名只需改动集中保存的值。这与早期逐条控制窗口相比,增加了组织和维护脚本的手段。
AutoIt的发展把桌面操作与可重复的程序流程连接起来:起初解决安装界面的按键等待,后来让这些操作进入更完整的脚本结构。理解其发布史,需要同时看到面向Windows管理的连续用途,以及第一、第二、第三版之间实质性的实现和语法变化。