好文档 - 专业文书写作范文服务资料分享网站

autoit快速开发指南

天下 分享 时间: 加入收藏 我要投稿 点赞

. .

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 MON 当前月份,值的围是 01到 12 YEAR 当前年份(4位数)

计算指定日期间隔后的新日期:

_DateAdd(“计算类型”, “间隔数”, “指定日期”) 计算两个指定日期的间隔:

_DateDiff(“计算类型”, “计算的开始日期”, “计算的结束日期”) 6. 像素捕获

像素捕获主要去获取屏幕某块区域像素点的色值,以此和给定的颜色色值来比较判断是否一致。 WinActivate(\窗口标题\$Handle = WinGetHandle(\窗口标题\AutoItSetOption (\$Color = PixelGetColor(X坐标,Y坐标,$Handle) $ColorStr = Hex($Color,6) 在实际情况中,有时可能不止获取一个点的像素就够了,这时可以通过获取窗口的相关WinGetPos(\窗口标题\坐标位置,然后对某个区块进行扫描。 7. 文件操作 12.1.

一般文件

对于一般文本文件的读取:可以使用FileOpen打开文件,在按照要求读取文件容: $fHandle = FileOpen(\文件\if $fHandle <> -1 Then While 1 $line = FileReadLine($fHandle) If error = -1 Then ExitLoop Wend . . .

. . EndIf FileClose($fHandle) 如果文件被独占打开,进行FileOpen操作时候,获取不到文件操作句柄,无法对文件进行读写操作,这时,如果只是针对文件读,可以将独占打开的文件进行一下复制,然后用拷贝文件进行目标操作。 FileCopy(\原文件\目标文件或路径\12.2.

ini文件

对于ini类型文件,形如: [字段名] 关键字=数值

文件中可以有多个不同的字段名,每个字段名下有多个关键字,不同字段名下的关键字可以相同。 读取ini文件:

IniRead ( \文件名\字段名\关键字\默认值\

写入ini文件: IniWrite ( \文件名\字段名\键名\值\删除ini文件: IniDelete ( \文件名\字段名\关键字\

8. 常用控件操作 13.1.

ListBox控件

ListBox控件,如图所示:

在前面提到选择控件,ListBox也是其中一种,前面介绍了如何选中的某行选项,但是在真正的ListBox空间中,多半是记录相关软件运行时的一些状态参数记录,需要做的只判断其中打印的相关记录: $hWnd = ControlGetHandle(\窗口标题\控件名) $count = _GUICtrlListBox_GetCount($hWnd) For $i=0 To $count-1 $hLabel = _GUICtrlListBox_GetText($hWnd, $i) Next 其中第一行是获取控件操作句柄,第二行根据句柄获取控件的记录条数,最后根据记录上遍历,获取每一条记录。 13.2.

ListView控件

ListView控件展示形如表格,如图所示:

. . .

. .

其操作如下

$rows = ControlListView(\窗口标题\控件名\For $i=0 To $rows-1 $iText = ControlListView(\窗口标题\控件名\列名序号\Next 上面代码,我们首先获取行数,然后指定某列,获取其所有行的文本。 更多ListView操作可以参考ControlListView函数说明。

9. 运行参数设置

运行参数设置可以调整Autoit各种函数/参数的运作方式,可以通过Opt或者AutoItSetOption函数来设置:

AutoItSetOption ( \选项\参数] ) 如: Opt (\或AutoItSetOption (\常用的有: Opt (\设置用于象素函数的坐标参照 Opt (\修改特殊的 GUI 函数的返回值类型 Opt (\更改每个鼠标点击命令之间的延迟时间长度 Opt (\更改发送键击命令之间的延迟时间长度 Opt (\在托盘图标上显示当前脚本执行到的那一行的相关信息(工具提示)以助调试 Opt (\更改每次成功执行窗口相关操作后的延迟时间长度 更多运行参数设置可以参考AutoItSetOption帮助文档说明 10. 加密解密 15.1.

加密

;$bEncrypted 为加密后字符串 _Crypt_Startup() $hKey=_Crypt_DeriveKey(\$bEncrypted =_Crypt_EncryptData(\待加密字符\_Crypt_DestroyKey($hKey) _Crypt_Shutdown() 这里加密的是一个16进制的字符串,其中加密匙可以自己设置,示例中为sop,其中加密算法为AutoIt置的$CALG_RC4,还可以为$CALG_RC2等等其他。

. . .

. .

15.2. 解密

;$ encrypt为解密后字符串 $bData = Binary(“加密的字符”) $encrypt = BinaryToString(_Crypt_DecryptData($bData, \很简单的两行,不过其中的解密匙和解密算法要跟之前的加密参数对应。 11. GUI操作

GUI操作包括创建窗口面板,在面板上创建表单控件及其互动事件处理等一系列连贯配置: $hWnd=GUICreate(\加密\

$hInputEdit=GUICtrlCreateEdit(\$hOutputEdit=GUICtrlCreateEdit(\GUIRegisterMsg($WM_COMMAND,\GUISetState(SW_SHOW) _Crypt_Startup()

$hKey=_Crypt_DeriveKey(\Do

$msg=GUIGetMsg()

Until $msg=$GUI_EVENT_close _Crypt_DestroyKey($hKey) _Crypt_Shutdown()

Func WM_COMMAND($hWinHandle,$iMsg,$wParam,$lParam)

If _WinAPI_HiWord($wParam)=$EN_CHANGE And _WINAPI_LoWord($wParam)=$hInputEdit Then $bEncrypted=_Crypt_EncryptData(GUICtrlRead($hInputEdit),$hKey,$CALG_USERKEY) GUICtrlSetData($hOutputEdit,$bEncrypted) EndIf EndFunc

上面是一个简单界面包装,一旦界面检测到$WM_COMMAND事件响应,即触发自定义函数WM_COMMAND,窗口包括两个简单的文本编辑控件。

我们还可以设置其他控件的事件处理: Opt(\$winTitle = \配置密码\$handle = GUICreate($winTitle,300,200) $btn = GUICtrlCreateButton(\确定\GUISetState (SW_SHOW,$handle) GUICtrlSetOnEvent($btn,\Func GetPwd($hWinHandle,$iMsg,$wParam,$lParam) …… EndFunc 这里是针对按钮设置了点击触发事件。 . . .

autoit快速开发指南

..3.字符串处理针对字符串的处理,一般常需要判断字符串是否存在,或对字符串进行拆分、替换等,下面用一个例子来说明一下:一个用&&连接的子字符串,需要跟某段文字进行匹配,如果发现存在子存在,则替换成指定的字符串$originalStr=\$matchS
推荐度:
点击下载文档文档为doc格式
4zgl06tcb947le14lopx1jxus0hl5300vw9
领取福利

微信扫码领取福利

微信扫码分享