Au3 学习笔记 第一天

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

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

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

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

保存后缀名为.au3

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

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

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

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

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

运行脚本后会提示一个对话框,标题为我的第一个脚本程序! 内容为 :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

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

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

首先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
posted @ 2017-10-13 12:05  王玉松  阅读(456)  评论(0)    收藏  举报