* * WinActivate(“窗口标题”) $hWnd = ControlGetHandle(“窗口标题”, \“控件ID”) $count = _GUICtrlListBox_GetCount($hWnd) For $i=0 To $count-1 $hLabel = _GUICtrlListBox_GetText($hWnd, $i) …… Next 1. 点击操作
6.1 控件点击
控件点击一般使用:
ControlClick(\窗口标题\控件名或ID\按钮\点击次数\按钮分左键(left),右键(right)等
此外还可以在函数后面添加坐标,这对于占用屏幕区域比较大的时候,精确点击某个位置触发其他操作比较重要
比如在一个表格中,需要右击某一行记录,弹出右键菜单的情况。
6.2 鼠标点击
MouseClick(“按钮”, “X坐标”,”Y坐标”,”点击次数”) MouseClick函数对于任何点击操作都有效,
唯一不理想的是,它涉及坐标点的确定,降低了程序的通用性。 如果非要这么做,建议: 1) 将当前窗口激活,并最大化
* * WinActivate(\窗口标题\WinSetState(\窗口标题\;接下来进行鼠标点击相关操作 …… 2) 如果当前窗口禁用最大化,则使用当前窗口相对坐标进行操作
AutoItSetOption ( \ ;这里指相对当前激活窗口的坐标 WinActivate(\窗口标题\;接下来进行鼠标点击相关操作 …… 2. 键盘操作
键盘操作一般使用Send函数,想激活窗口发送模拟键盘操作
7.1 一般字符
这种情况指向当前激活窗口文本框,发送按键字符,如: Send(\向光标激活地方发送的字符串\7.2 快捷操作
这种情况一般没有光标的输入,只是针对当前的激活窗口的一些快捷操作,比如按键”ctrl+S”是保存等,如
Send(\另外一些快捷键如: Ctrl=^ * * Alt=! Win=# Shift=+ 其他如: Send(“{ PRINTSCREEN}”) 截屏键 Send(“{ SPACE}”) 空格键 Send(“{ ENTER}”) 回车键 Send(“{ BACKSPACE}”) 退格键 …… 3. 字符串处理
针对字符串的处理,一般常需要判断字符串是否存在,或对字符串进行拆分、替换等,下面用一个例子来说明一下:
一个用&&连接的子字符串,需要跟某段文字进行匹配,如果发现存在子存在,则替换成指定的字符串 $originalStr=\………………\$matchStr=\政府&&奶奶的\$array = StringSplit($matchStr, '&&', 1) If $i=1 To $array[0] Then If StringInStr($originalStr,$array[$i])>0 Then $originalStr = StringReplace($originalStr,$array[$i,\EndIf EndIf 其他可以参考官方帮助文档。
* *
4. 数组处理
数组可以包含不同数据类型的数据,处理起来有两种情况需要注意
9.1 一般数组
这个跟其他程序语言无太大的差别,如下所示: Dim $array[2] $array[0]=1 $array[1]=2 注意下标从0开始
9.2 特殊数组
特殊数组指某些函数的返回值为数组的情况,或是在运行脚本时候,传递给命令行的参数,AutoIT会初始化一个特殊的数组,这些数组下标也是从0开始,但是为0的项保存的是数组的个数。 ? 命令行返回数组
对于脚本参数数组为$CmdLine,可以直接使用 $CmdLine[0] ;参数的数量
$CmdLine[1] ;第一个参数 (脚本名称后面) $CmdLine[2] ;第二个参数 ...
$CmdLine[$CmdLine[0]] ;可以用来表示得到最后一个参数... 如果脚本是像下面这样被运行的话:
AutoIt3.exe myscript.au3 参数1 \这是 一个其它参数\$CmdLine[0] 等价于... 2
* *
$CmdLine[1] 等价于... 参数1
$CmdLine[2] 等价于... 这是一个其它参数 @ScriptName 等价于... myscript.au3
? 函数返回数组
前面用到的StringSplit函数返回值也是一个数组,0位保存的是数组项的个数,数组内却是从1开始计数 $matchStr=\$array = StringSplit($matchStr, '&&', 1) 如上:
$array[0] 等于4 $array[1] 等于”11” $array[2] 等于”22” $array[3] 等于”33”
其他还有另外一些特殊的函数,如FileGetTime,WinList等等很多函数,返回值都是数组的情况,具体用法可能有些差异,这些可以参考相关文档。
5. 日期时间
当前日期时间,可以直接从日期和时间宏中获取,如: @SEC 当前时钟的秒值,值的范围是 00 到 59 @MIN 当前时钟的分值,值的范围是 00 到 59
@HOUR 当前时钟的时值(24时制),值的范围是 00 到 23 @MDAY 当天属本月的第几天,值的范围是 01 到 31