AutoIt3相关——基本使用篇

零、AutoIT v3在线中文手册

https://www.jb51.net/shouce/autoit/

番外:https://www.robvanderwoude.com/

一、AutoIT可以干啥

1.运行Windows 及 DOS 下的可执行文件

2.模拟键击动作(支持大多数的键盘布局)

3.模拟鼠标移动和点击动作

4.对窗口进行移动、调整大小和其它操作

5.直接与窗口的“控件”交互(设置/获取文字、移动、关闭等)

6.配合剪贴板进行剪切/粘贴文本操作

7.对注册表进行操作

二、如何使用AutoIT

1.安装:

百度下载安装or(http://forspeed.onlinedown.net/down/autoit-v3-setup.zip  解压下一步安装即可)

2.运行:

a.桌面双击运行

b.dos命令调用执行

 3.快速开始:

注:autoIT关键字不区分大小写;autoIT以缩进来表示代码块;$CmdLine[0] 保存着命令行中参数的个数,$CmdLine[1] 是第 1 个参数,
$CmdLine[2] 则是第 2 个参数……;

a.注释:

autoIT中以分号为单行注释,注释掉的内容不会被执行

b.信息弹窗——MsgBox:

; 这是我写的第二个脚本(带自定义函数)
MsgBox(0, "我是弹窗标题", "我是弹窗内容")
; 函数名调用
TestFunc()

Func TestFunc()
    MsgBox(0, "我是函数调用弹窗标题", "我是函数调用弹窗内容")
EndFunc

c.脚本编译:

开始菜单点击Compile Script to .exe(x64),选择如下(ico可以不选),后点击convert,生成如第二张图的可执行文件

 

 生成的可执行文件即可脱离autoIT安装环境而执行

 4.窗口信息工具(AutoIt Window Info):

开始菜单点击AutoIt Window Info(x64),打开窗口信息工具如下

 

 窗口信息工具可以获取的窗口信息如下:

  •  窗口标题
  •  窗口上的文本文字(包括可见部分和不可见部分)
  •  窗口的大小和坐标位置
  •  状态栏的内容
  •  鼠标指针的坐标位置
  •  鼠标指针所指象素的颜色值
  •  鼠标经过的控件的相关信息

5.窗口标题与文本

注:窗口标题和文本是严格区分大小写的;窗口信息工具中可以直接复制标题等

WinWaitActive ( "窗口标题", ["窗口文本"], [超时时间] ):使脚本暂停执行并 一直等到 指定窗口出现且激活为止

一般来说有效的文本是指编辑框控件内的文本,此外还可以使用下面这些文本:

  •  按钮上的文本,比如 &Yes、&No、&Next、确定(&O) 等(“&”号后的字符将带有下划线)
  •  对话框上的文本,比如 “是否要继续?”
  •  其它控件上的文本

a.AutoItSetOption("属性", 参数):调整各种函数/参数的运作方式 

参数

属性 要改变的选项。请查看下面的注意部分。
参数 相关参数(因设置的属性不同而不同)。请查看下面的注意部分。

返回值

返回上一次设置的值。

注意

可用缩写函数 Opt() 代替 AutoItSetOption()(两者实际是同一函数).
如果指定一个未知属性则 AutoIt 将会暂停执行并显示错误信息。有效的属性包括:

属性 参数
CaretCoordMode 设置用于caret(插入符)函数的坐标参照,可以是绝对位置也可以是相对当前激活窗口的坐标位置。
0 = 相对激活窗口的坐标
1 = 屏幕的绝对位置(默认)
2 = 相对激活窗口客户区的坐标
ColorMode 设置要使用的颜色模式,RGB 或 BGR。RGB 是默认的模式,但老版本的 AutoIt(3.0.102 之前)是以 BGR 为默认模式:
0 = 颜色值以 RGB 格式表示(0xRRGGBB)(默认)
1 = 颜色值以 BGR 格式表示(0xBBGGRR) (用于旧版的 AutoIt)
ExpandEnvStrings 更改字面字符串和 % 符号的解释方式。默认情况下字符串按原文解释,此选项允许您在字符串中使用形如 %environment% 这样的环境变量,例如 "临时文件夹的路径是: %temp%"。
1 = 展开环境变量(类似于 AutoIt v2)
0 = 不展开展环境变量(默认)
若未设置此选项则要实现类似功能的方法是:"临时文件夹的路径是: " & EnvGet("temp")
ExpandVarStrings 更改字面字符串和变量/宏($ 和 @)符号的解释方式。默认情况下字符串按原文解释,此选项允许您在字符串中使用变量和宏,例如 "变量 var1 的值是 $var1$"。
1 = 展开变量(在此模式下如果要表示 $ 或 @ 本身则请用连续两个相应符号表示,例如:"这里有一个美元符号 $$")。
0 = 不展开变量(默认)
FtpBinaryMode 调整FTP文件的传输模式。
1 = 二进制(默认)
0 = ASCII
GUICloseOnESC 当用户在一个GUI窗口(处于激活状态时)按下 ESC 键则 $GUI_EVENT_CLOSE 消息将被发送。此选项用以切换这一行为。
1 = 在按下 ESC 时发送消息 $GUI_EVENT_CLOSE(默认).
0 = 在按下 ESC 时不发送消息 $GUI_EVENT_CLOSE
GUICoordMode 设置用于 GUICtrlSetPos 函数的坐标参照。
1 = 绝对坐标(默认)将相对于对话框。
0 = 相对于上一个控件的起始位置(左上角)。
2 = 相对当前单元格的位置。若参数“左侧”“上方”指定为 -1则并不会增加起始位置,因此下一行应该用 -1,0 来表示;下一个单元格则是 0,-1;当前单元格则是 -1,-1
GUIOnEventMode 启用/取消 OnEvent 函数
0 = (默认)取消。
1 = 启用。
GUIResizeMode 更改控件大小调整的模式。
0 = (默认)不调整
<1024 = 详情请查看 GUICtrlSetResizing 函数的说明。
MouseClickDelay 更改每个鼠标点击命令之间的延迟时间长度。
以毫秒为单位(默认值 = 10)。
MouseClickDownDelay 更改在松开按键之前按住按钮的时间长度。
以毫秒为单位(默认值 = 10)。
MouseClickDragDelay 更改鼠标开始拖曳到结束拖曳之间的时间长度。
以毫秒为单位(默认值 = 250)。
MouseCoordMode 设置用于鼠标函数的坐标参照,可以是绝对位置也可以是相对当前激活窗口的坐标位置。
0 = 相对激活窗口的坐标
1 = 屏幕的绝对位置(默认)
2 = 相对激活窗口客户区的坐标
MustDeclareVars 如果设置了此选项为1则所有变量在使用之前必须先使用 Dim/Local/Global 声明,这将有助于减少各种因误拼变量而引起的bug的出现。
1 = 变量必须先声明
0 = 变量不需预先声明(默认)
OnExitFunc 设置在 AutoIt 退出时将调用的函数(默认值为 OnAutoItExit).
PixelCoordMode 设置用于象素函数的坐标参照,可以是绝对位置也可以是相对当前激活窗口的坐标位置。
0 = 相对激活窗口的坐标
1 = 屏幕的绝对位置(默认)
2 = 相对激活窗口客户区的坐标
RunErrorsFatal 设置脚本在遇到严重错误时是否自动终止(比如在 Run/RunWait 函数因为 路径错误/找不到文件/登陆帐号错误 而导致执行失败时):
1 = 严重(致命性)错误(默认)
0 = 静默(普通的)错误(@error 将设为 1)
SendAttachMode 指定在使用 Send() 函数时 AutoIt 是否捆绑(attach)输入线程。当不捆绑的时候(默认模式 = 0)对 capslock/scrolllock/numlock 等按键状态的检测将是不准确的(指在 NT4 下)。不过,在设置捆绑模式 = 1的时候,Send("{... down/up}") 等语法将不被支持,在发送按键的时候也可能会导致系统挂起等问题。至于 ControlSend() 函数则 总是 捆绑线程的,而且不受此模式设置的影响。
0 = 不捆绑(默认)
1 = 捆绑
SendCapslockMode 指定是否让 AutoIt 在执行 Send 函数之前保存大小写切换键(CapsLock)的状态并在完成操作后恢复到原来的状态。
0 = 不保存/恢复
1 = 保存并恢复(默认)
SendKeyDelay 更改发送键击命令之间的延迟时间长度。
以毫秒为单位(默认值 = 5)。设置此值为0时也许会无效,这时请使用1代替。
SendKeyDownDelay 更改在每次键击期间(松开按键之前)按住按键的时间长度。对于一些需要花费一定时间才能注册键击的应用程序(以及各种游戏)您可能就要提高这一数值。
以毫秒为单位(默认值 = 1)。
TrayIconDebug 在托盘图标上显示当前脚本执行到的那一行的相关信息(工具提示)以助调试。
0 = 不显示调试信息(默认)
1 = 显示调试信息
TrayIconHide 隐藏 AutoIt 托盘图标。注意:托盘图标仍会在程序刚运行时出现大约 750 毫秒。
0 = 显示托盘图标(默认)
1 = 隐藏托盘图标
WinDetectHiddenText 指定是否让隐藏的窗口文本也能被窗口匹配函数“看见”(可用于窗口文本参数)。
0 = 不检测隐藏文本(默认)
1 = 检测隐藏文本
WinSearchChildren 允许窗口搜索程序在搜索顶层窗口的同时也搜索子窗口。
0 = 仅搜索顶层窗口(默认)
1 = 搜索顶层窗口及子窗口。
WinTextMatchMode 更改窗口函数在执行搜索操作时的窗口文本匹配模式。
1 = 完全匹配(较慢)模式(默认)
2 = 快速模式
在快速匹配模式下,AutoIt 将只能“看见”对话框文本、按钮文本和某些控件的标题,而在默认模式下则能检测到更多的文本(例如记事本窗口的内容)。
如果在执行较多窗口的搜索操作时遇到性能(指速度)上的问题,那么您就应该考虑使用快速模式。
WinTitleMatchMode 更改窗口函数在执行搜索操作时的标题匹配模式。
1 = 只匹配标题的前面部分(默认)
2 = 标题的任意子串皆可匹配
3 = 完全匹配标题
4 = 高级模式,详情请查看 窗口标题与文本(高级篇)
WinWaitDelay 更改每次成功执行窗口相关操作后的延迟时间长度。
以毫秒为单位(默认值 = 250)。

b.WinWait四种模式

模式1(默认):只匹配标题的前面部分(默认)
模式2: 标题的任意子串皆可匹配
模式3:完全匹配标题

模式4:高级模式

"classname=" 只匹配具有相同类别名的窗口。例如要识别一个类别名为 “MYCLASS1”的窗口,则可把“classname=MYCLASS1”作为窗口标题 参数使用。"active" 表示当前激活的窗口(实际作用与默认的 WinTitleMatchMode 模式下的 "" 一样)。"last" 使用上一次成功匹配的窗口,这样就不必三番四次地指定窗口标题和窗口文本了。

    AutoItSetOption("WinTitleMatchMode", 4)

    WinWaitActive("demo")

    WinWait("classname=Notepad++","",5)   ;匹配classname是Notepad++的窗口

    WinClose("last")   ;关闭前面匹配成功的记事本窗口

 6.控件

注:AutoIt 仅支持标准的 Microsoft 控件 - 有些应用程序(的作者)自己写的自定义控件看起来很像是标准的 MS 控件,但却无法被脚本程序识别,那就只能靠您的经验判断了,实践出真理!

a.控件的信息包括:

  • 控件 ID(Control ID):窗口信息工具获取
  • 类别名(ClassNameNN):窗口信息工具获取
  • 文本(Text):窗口信息工具获取
  • 控件句柄 (HWND):使用 ControlGetHandle 函数获取,ControlGetHandle ( "窗口标题", "窗口文本", 控件ID)

b.ControlClick ( "窗口标题", "窗口文本", 控件ID [, 按钮] [, 点击次数]] ):向指定控件发送鼠标点击命令

参数

窗口标题 目标窗口标题。
窗口文本 目标窗口文本。
控件ID 目标控件。请查看关于 控件 的说明。
按钮 [可选参数] 要点击的按钮,可以是 "left"(左键)、"right"(右键) 或 "middle"(中键)。默认值为 left(左键)。
点击次数 [可选参数] 要点击鼠标按钮的次数。默认值为 1.

返回值

成功: 返回值为1。
失败: 返回值为0。

注意

在执行此命令前可能还需要使用 ControlFocus 命令把焦点转到目标控件上。
模拟点击控件仅在目标控件的父窗口处于激活状态(一般程序会自动激活该窗口)时才能保证100% 的准确性。

相关

ControlCommandControlFocusMouseClick

 

 

持续更新中。。。。。。

 

 

 

 

 

posted @ 2019-11-13 13:16  飞天小一  阅读(10706)  评论(0编辑  收藏  举报