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+]")
AutoIt 中的变量类型支持窗口句柄值 (HWND). 窗口句柄是窗口创建时,由 Windows 自动分配的特殊值.
窗口句柄可用来代替窗口的标题参数. 使用窗口句柄能够更加精确地识别具有相同标题/文本的窗口.
当您使用窗口句柄作为标题参数值,则文本参数是完全忽略的.
很多函数如 WinGetHandle, WinList 与 GUICreate 都能返回窗口句柄.
重要的是要注意, 窗口句柄不能归类为数字或字符串 - 它是一个特殊的数据类型.
注意: 无论是否使用 WinTitleMatchMode 匹配模式选项, 窗口句柄将始终工作.
示例
$handle = WinGetHandle("无标题 - 记事本", "")
WinClose($handle)
provider with jb51.net (unicode) |