AutoIt

AutoIt /ɔːtoʊ ɪt/是一种免费微软Windows编程语言。在第1和第2版中,它被用来创建微软Windows程序的自动化脚本。这些脚本有时被称为宏。在第3版中,编程语言被扩展到允许它做更多的事情。

AutoIt 1和2中的脚本语言是语句驱动的。它被设计为模拟用户对计算机的输入。从第3版开始,AutoIt的语法发生了变化。现在它类似于BASIC编程语言。AutoIt第3版是一种通用的编程语言。它可以有数据的类型,如数组

一个AutoIt脚本可以被转换为一个独立的可执行文件。这可以在没有安装AutoIt解释器的计算机上运行。有多种函数库可供选择,它们被称为UDF,或"用户定义函数"。它们被称为UDF,或"用户定义函数"。有些函数库是标准配置。其他的函数库可以从网站上获得。它们为语言增加了额外的功能。AutoIt有一个特殊的编辑器,一个集成开发环境或IDE。它是基于免费的SciTE编辑器。编译器和帮助文本都包含在这个特殊的编辑器中,为开发者提供了一个标准的环境。



 典型的AutoIT脚本截图Zoom
典型的AutoIT脚本截图

特点

  • 类似BASIC结构的脚本语言,适用于Windows。
  • 编译成独立的可执行文件
  • 特定应用程序或应用程序的附加库和模块。
  • 支持TCPUDP协议
  • 支持组件对象模型(COM)
  • 调用DLL文件中的函数
  • 运行控制台应用程序并访问标准流
  • 在编译文件中包含数据文件,以便在运行时提取
  • 创建图形用户界面,包括信息和输入框。
  • 播放声音,暂停,恢复,停止,寻找,获取声音的当前位置,获取声音的长度。
  • 模拟鼠标动作
  • 操作窗口和进程
  • 自动将用户输入和按键发送到应用程序,以及应用程序中的单个控件。
  • 从3.2.4.0版本开始支持Unicode。
  • 从3.2.10.0版本开始支持64位代码。
  • 支持正则表达式
  • 与用户账户控制兼容
  • 通过库进行面向对象的设计



使用方法

AutoIt经常被用来制作微软Windows实用软件。这些程序可以自动完成常规任务。使用实例包括:系统管理、监控、维护和软件安装。它还用于模拟用户交互。在这种情况下,一个应用程序由一个AutoIt脚本"驱动"去做一些事情,它的行为就像一个人类用户。一个AutoIT脚本可以发出按键鼠标点击、输入文本等。通过这种方式,它可以模拟应用程序的人类用户。

AutoIt已被应用于低成本的实验室自动化。应用包括仪器同步、报警监控和结果收集。也可以控制3D打印机等设备。



例子

你好,世界

; 提供一个常量值库。#include < MsgBoxConstants. au3> ; 在消息框中显示"Hello, world!"MsgBox($MB_SYSTEMMODAL, "Title", "Hello, world!")

自动化Windows计算器

; 提供一个常量值库。#include < MsgBoxConstants. au3> ; 显示一个超时6秒的消息框。MsgBox($MB_OK, "Attention", "Avoid touching the keyboard or mouse during automation.", 6) ; 运行Windows计算器。Run("calc.exe") ; 等待计算器激活,超时10秒。WinWaitActive("[CLASS:CalcFrame]", "", 10) ; 如果10秒后计算器没有出现,则退出脚本。如果WinExists("[CLASS:CalcFrame]") = 0 Then Exit ; 自动在计算器中输入当前年份。Send(@YEAR) ; 让我们把脚本的速度放慢一点,这样我们就可以看到发生了什么。Sleep(600) ; 自动输入"除以4",然后睡眠600毫秒。Send("/4") Sleep(600) ; 按回车键显示结果,然后休眠600毫秒。Send("{ENTER}") Sleep(600) ; 使用Windows快捷键Ctrl+C将结果复制到剪贴板。Send("^c") ; 声明并将剪贴板的内容分配给一个变量。Local $fResult = ClipGet() ; 检查变量是否包含小数点。If StringInStr($fResult, ".") Then ; 显示一个超时5秒的消息框。MsgBox($MB_OK, "Leap Year", @YEAR & "is not a leap year.", 5) Else ;      这个消息只有在当前年份是闰年时才会显示。WinClose("[CLASS:CalcFrame]")

找出平均值

; Find Average by JohnOne, modified by czardas #include < MsgBoxConstants.au3> _Example() ; 运行这个例子。Func _Example() ; 显示一个输入框,要求用户输入一些用逗号分隔的数字。Local $sInput = InputBox("Find Average", "Enter some numbers separated by commas: 1,2,42,100,3") 如果发生错误,则退出脚本。 If @error Then Exit ; 用用户的输入填充一个数组。Local $aSplit = StringSplit($sInput, ",") ; 将数组传递给函数_Find_Average(),然后检查错误。Local $fAverage = _Find_Average($aSplit) If @error Then Exit ; 在消息框中显示结果。MsgBox($MB_OK, "Find Average", "Result: " & $fAverage) EndFunc ;==   >_Example Func _Find_Average($aArray) ; 如果     输入的类型不正确(数组),那么返回一个错误和细节。If Not IsArray($aArray) Then Return SetError(1, 0, VarGetType($aArray))     声明一个变量来存储这些数字的总和。Local $iArraySum = 0 ; 循环浏览数组。对于 $i = 1 To $aArray[0] ; 用每个数组元素中的数字增加总和。$iArraySum += Number($aArray[$i]) Next ; 返回四舍五入到小数点后两位的平均值。返回 Round($iArraySum / $aArray[0], 2) EndFunc ;==>_Find_Average



历程

  • 1999年1月 - 第一个AutoIt版本(1.0)。
  • 1999年8月 - AutoIt v2和AutoItX。
  • 1999年9月--第一个带编译器的AutoIt版本。
  • 2002年12月 - AutoIt v3 (公共测试版)
  • 2004年2月 - AutoIt v3 (Stable)
  • 2006年9月 - Auto3Lib开始
  • 2007年11月--AutoIt v3.2.10.0发布,Auto3Lib并入AutoIt v3。
  • 2008年5月 - 发布AutoIt v3.2.12.0,增加了GUI功能。
  • 2008年12月 - AutoIt (和AutoItX) v3.3.0.0发布。
  • 2009年12月 - AutoIt v3.3.2.0发布。
  • 2010年1月 - AutoIt v3.3.4.0发布。
  • 2010年3月--AutoIt v3.3.6.0发布。
  • 2010年4月 - 发布AutoIt v3.3.6.1。
  • 2011年12月 - AutoIt v3.3.8.0发布。
  • 2012年1月 - 发布AutoIt v3.3.8.1。
  • 2013年12月 - AutoIt v3.3.10.0发布。
  • 2014年6月--AutoIt v3.3.12.0发布。
  • 2015年7月--AutoIt v3.3.14.0和 v3.3.14.1发布。
  • 2015年9月--AutoIt v3.3.14.2发布。
  • 2018年2月--AutoIt v3.3.14.3发布。



许可证

AutoIt的开发者最初是以GNU通用公共许可证(GPL)发布源代码的。

2006年,3.2.0及以后的版本的许可证被改为自己的闭源许可证。

3.1版本中的一些代码被AutoHotkey项目用来创建一个fork。这在 GPL 许可条款下是允许的。AutoHotkey 社区将继续在 GPL 下开发和发布代码。



问题和答案

问:什么是AutoIt?
答:AutoIt是一种用于微软视窗的免费编程语言。

问:AutoIt在第1和第2版中是如何使用的?
答:在第一和第二版中,它被用来为Microsoft Windows程序创建自动化脚本,也称为宏。

问:AutoIt的第3个版本有什么变化?
答:第三版的脚本语言得到了扩展,可以做更多的事情,语法也改变了,与 BASIC 编程语言相似。

问:一个AutoIt脚本可以包含什么类型的数据?
答:AutoIt 脚本可以包含诸如数组之类的数据类型。

问:AutoIt 脚本可以在没有安装解释器的计算机上运行吗?
答:可以,AutoIt 脚本可以转换为独立的可执行文件,可以在没有安装解释器的计算机上运行。

问:该语言是否有任何额外的能力可用?
答:是的,我们提供了大量的函数库,称为UDF或 "用户定义的函数",其中有些是标准的,有些可以从网站上获得,它们为语言增加了额外的能力。

问:是否有一个专门的编辑器用于开发AutoIt?
答:是的,有一个基于免费SciTE编辑器的特殊编辑器,它包括一个编译器和帮助文本,为开发者提供一个标准的开发环境。

AlegsaOnline.com - 2020 / 2023 - License CC3