本帖最后由 afan 于 2022-1-27 11:26 编辑
帮助文档就有的窗口标题与文本(高级)AutoIt 有 3 个 "窗口匹配" 模式. 这些模式可以使用 AutoItSetOption 函数通过 WinTitleMatchMode 选项设置.
模式 1 (默认)
匹配标题的开始部分.
在此模式下, 若窗口的标题是 无标题 - 记事本, 则可以匹配“无标题 - 记事本”、“无标题” 甚至 “无” 等字符串.
例如:
模式 2
匹配标题的任意子串.
在此模式下, 若窗口的标题是 无标题 - 记事本, 则可以匹配 "无标题 - 记事本", "无标题", "记事本", "事本"等字符串.
例如:
模式 3
完全匹配标题.
在此模式下, 若窗口的标题是 无标题 - 记事本, 则只能匹配 "无标题 - 记事本".
模式 4 (保持向后兼容)
高级模式
必须用高级窗口描述代替, 工作于任何模式.
模式 1 到 4
依照不同类型匹配, 不区分大小写.
高级窗口描述窗口 标题 参数使用特定描述. 这种描述使用下列属性识别窗口:
- TITLE - 窗口标题
- CLASS - 内部窗口类名
- REGEXPTITLE - 窗口标题使用 正则表达式 (如果正则表达式错误, 则 @error 被设置为 2)
- REGEXPCLASS - 窗口类名使用 正则表达式 (如果正则表达式错误, 则 @error 被设置为 2)
- LAST - 先前 AutoIt 窗口函数使用的最后一个窗口 (见窗口函数管理)
- ACTIVE - 当前活动窗口
- X \ Y \ W \ H - 窗口的位置和大小
- INSTANCE - 当多个属性时, 按指定属性的序号匹配(序号基于 1 计算)
窗口标题使用一或多个属性参数时的命令格式:
[属性1 : 值1; 属性:值2]
注意 : 如果值包含分号 ";", 则必须使用双引号.
示例, 等候一个类名(CLASS) 为 "Notepad" 的窗口.
示例, 关闭当前激活窗囗
示例, 等待 TITLE(标题) 为 "我的窗口" 和 CLASS(类名) 为 "我的类", (INSTANCE) 为 2 的第二个窗口
示例, 在窗口列表中, 匹配正则表达式定义的窗口标题
WinList("[REGEXPTITLE:(?i)(.*SciTE.*|.*Internet Explorer.*)]") 窗 口 句 柄 / HWNDsAutoIt 中的变量类型支持窗口句柄 (HWNDs). 窗口句柄是窗口创建时, 由 Windows 自动分配的特殊值. 当你有一个句柄时,你可以在任何使用标题/文本约定的函数调用中使用它来代替"标题"参数. 使用窗口句柄的优点是, 如果您打开具有相同标题/文本的应用程序的多个副本, 则可以使用句柄的唯一性标识它们. 当为"标题"参数使用窗口句柄时, 则"文本"参数将被完全忽略.
很多函数如 WinGetHandle, WinList 和 GUICreate 都能返回窗口句柄. 重要的是要注意, 窗口句柄不能归类为数字或字符串 - 它是一个特殊的类型.
注意: 无论 WinTitleMatchMode 当前正在使用什么匹配模式, 窗口句柄都可以工作.
示例
14.5
在线也有 https://www.autoitx.com/Doc/html/intro/windowsadvanced.htm
|