Au3 学习笔记 第一天

Au3 是一种脚本语言,已及简单的语法完成相当复杂的工作.

我的参考书 是 <<游戏自动化测试>> 及官方的帮助文档.

第一天的主要部分,我还是想记录一些语法部分

Au3 是脚本语言,安装au3 及SciTE 之后 启动SciTe 后创建一个文件

保存后缀名为.au3

右键就可以执行或者编译脚本了。

执行就是单纯的脚本语言。但是编译是可以将脚本编译为可执行文件。

脱离au3的解释器。独立执行.

国际惯例还是要上一下Hello World!

MsgBox(0, "我的第一个脚本程序!", "Hello World!")

Image0.png

运行脚本后会提示一个对话框,标题为我的第一个脚本程序! 内容为 :Hello World!

编辑器刚打开的时候可能会出现中文乱码字体难看等问题。这里提供一下我的

SciTe 配置文件

在SciTe菜单项 中选择 option -> Open User Options File 会新打开一个窗口 黏贴

code.page=65001 output.code.page=65001 code.page=936 output.code.page=936 font.base=font:!Consolas,size:20 font.small=font:!Consolas,size:16 font.comment=font:!Consolas,size:18 font.monospace=font:!微软雅黑,size:20 font.code.comment.box=$(font.comment) font.code.comment.line=$(font.comment) font.code.comment.doc=$(font.comment) font.code.comment.nested=$(font.comment) font.text=font:!Consolas,size:20 font.text.comment=font:!Consolas,size:18 font.embedded.base=font:!Consolas,size:20 font.embedded.comment=font:!Consolas,size:20

Image.png

以上即配置完成基本的开发环境。

现在了解一下语言相关概念

首先au3的脚本语言只具备函数的概念。 没有面向对象等。

函数有ByRef 引用功能,提供在函数中修改传入变量的能力

函数具有返回值,(好像只能返回一个值?)

程序具备 条件选择 if switch select
条件循环 for for in while do until

弱类型

只有两种基本数据类型

数字型,和字符串型

同事支持数组

语句 无需使用 结束符结尾。

代码块 采用 end 形式

Switch $a
    Case $a = 9
        MsgBox(0, "我的第一个脚本程序!", "等于9")
    Case Else
        MsgBox(0, "我的第一个脚本程序!", "No等于9")
EndSwitch

Select
    Case $a = 5
         MsgBox(0, "Msg", "a变量等于5")
    Case Else
         MsgBox(0, "Msg", "默认值")
EndSelect

If $a >= 10 Then
     MsgBox(0, "大于等于十", "Hello World!")
Else
    MsgBox(0, "小于等于十", "Hello World!")
EndIf

While $a > 0
     MsgBox(0, "Msg", "总共提示:" & $a & "次")
    If $a = 5 Then
        ExitLoop
    EndIf
   $a = $a - 1
WEnd

Do
    MsgBox(0, "Msg", "总共提示:" & $a & "次")
   $a = $a + 1
Until $a >= 10
For $i = 0 to 10 Step +1
         MsgBox(0, "Msg", $i)
Next

For $i = 0 to 10 Step +1
;~         MsgBox(0, "Msg", $i)
Next

; 开头的为注释

以上是基本的程序概念,现在我们来看看变量的声明

Const $c = "Hello" ;静态变量
Dim $d = 0           ; 局部变量 不覆盖父级,即 当父级存在相同变量,此声明无效。默认使用父级
Local $f = 10        ; 真局部变量,无论父级有没有相同的变量,都使用局部变量
Global $e = 10     ; 全局变量
$t  = true           ;boolen 类型 应用很少可以忽略
$f  =false
$n = null            ; 空类型 用于windows api 传参

$a = 9                 ; 不写作用于的声明

以上就是基本的变量声明。有几点需要注意

用户定义变量采用$开头,系统定义的变量或者常量采用@开头

脚本关键字 首字母大写

变量只有两种。
第一种为 数字型
支持的操作有

      • / ^ 分别为 加 减 乘 除 阶乘 同时扩展的 += -= *= /= ^=

第二种为 字符串
支持的操作有:

& 拼接字符串 同时扩展的有 &=

关于变量基本的操作已经记录的差不多。

剩下的就是 分支 和循环了

分支和循环之前的代码已经可以看个大概了。基本就是这种格式,没有其他改变。这里就不说了。

值得说的是 条件判断运算符

判断一个 值 是否等于另一个值 是用 = 号 而不是 == 号

== 号是 判断两个字符串是否相等的。

除此之外还有 <> 不等于

= 大于等于
<= 小于等于
大于
< 小于

逻辑运算符 与 and 或 or 非 not

当然也支持 三木运算符

($a >=10):'true' ? false

剩下的只剩一个函数的定义和使用了.

Func TestFunc()
    MsgBox(0,"我的第二个脚本","主脚本:hello!")
EndFunc
一个函数的基本结构

Func TestFunc1($a,$b)
    MsgBox(0,"我的第二个脚本","主脚本:hello!")
  Local $c = 10
   return $c
EndFunc

;使用
TestFunc1($a,3231)

引用形式

Func TestFunc1(ByRef $a, ByRef  $b) ; 注意这里一定要有空格 在 逗号分隔符后边
    MsgBox(0,"我的第二个脚本","主脚本:hello!")
  Local $c = 10
   return $c
EndFunc

同时支持限定为常量

Func TestFunc(Const $a)
    MsgBox(0,"我的第二个脚本","主脚本:hello!")
EndFunc

已有 3 条评论

添加新评论