窗口标题与文本(高级)

AutoIt 具有四种“窗口匹配”模式. 由函数 AutoItSetOption 通过选项 WinTitleMatchMode 设置.

 

模式 1 (默认)

匹配开头的部分标题.

在此模式下,若窗口的标题是 "无标题 - 记事本", 则匹配“无标题 - 记事本”、“无标题” 甚至 “无” 等字符串.

例如:

WinWait("无标题")

 

模式 2

匹配标题的任意子串.

在此模式下,若窗口的标题是 "无标题 - 记事本", 则匹配 "无标题 - 记事本", "无标题", "记事本", "事本"等字符串.

例如:

WinWait("Notepad")

 

模式 3

完全匹配标题.

在此模式下,若窗口的标题是 "无标题 - 记事本", 则只能匹配 "无标题 - 记事本"

 

模式 4 (为保持向后兼容)

高级模式

必须用高级窗口描述代替, 不需要设置任何模式.

 

模式 1 到 3

强制小写体依照不同类型匹配.

 

高级窗口描述

特定描述可以作为窗口标题匹配参数使用. 这种描述由下列属性识别窗口:

窗口标题使用一或多个属性参数时的命令格式:

[属性1:值1; 属性2:值2]

注意 : 如果参数值包含分号 ";" --- 则此参数值必须使用双引号.

 

例如: 等候一个类名 " 笔记本" 的窗口

WinWaitActive("[CLASS:Notepad]", "")

 

例如: 关闭当前激活窗囗

WinClose("[ACTIVE]", "")

 

例如: 等候匹配属性 2 的窗口: 窗口标题 "我的窗口" 和类名 "我的类".

WinWaitActive("[TITLE:我的窗口; CLASS:我的类; INSTANCE:2]", "")

 

例如: 在窗口列表中,匹配正则表达式定义的类名

WinList("[REGEXPCLASS:#\d+]")

 

窗口句柄 / HWND

AutoIt 中的变量类型支持窗口句柄值 (HWND). 窗口句柄是窗口创建时,由 Windows 自动分配的特殊值.

窗口句柄可用来代替窗口的标题参数. 使用窗口句柄能够更加精确地识别具有相同标题/文本的窗口.

当您使用窗口句柄作为标题参数值,则文本参数是完全忽略的.

很多函数如 WinGetHandle, WinListGUICreate 都能返回窗口句柄.

重要的是要注意, 窗口句柄不能归类为数字或字符串 - 它是一个特殊的数据类型.

 

注意: 无论是否使用 WinTitleMatchMode 匹配模式选项, 窗口句柄将始终工作.

 

示例

$handle = WinGetHandle("无标题 - 记事本", "")
WinClose($handle)

 

 

 

 

provider with jb51.net (unicode)