SetTitleMatchMode


设置在例如 WinWait 这样的命令中,参数 WinTitle 的匹配模式。

SetTitleMatchMode, MatchMode
SetTitleMatchMode, Fast|Slow

参数

MatchMode

使用下面所示的一个数字或单词 RegEx :

1 :匹配由指定的 WinTitle 开始的窗口标题。
2 :匹配包含指定的 WinTitle 的窗口标题。
3 :精确匹配。窗口的标题必须完全和 WinTitle 一样。

RegEx(v1.0.45+):切换参数 WinTitleWinTextExcludeTitle 以及 ExcludeText正则表达式 匹配模式。当使用正则表达式的时候,不用在正则表达式的外面加引号。例如:WinActivate Untitled.*Notepad 。RegEx 同样适用于 ahk_groupahk_class 。例如 ahk_class IEFrame 匹配一个类名中任意位置包含 IEFrame 的窗口(这是因为默认情况下,正则表达式会在目标字符串中的 任意位置 搜索匹配值)。注意:对 WinText 参数来说,正则表达式会独立的匹配每个文本元素(例如每个控件的文本),因此,正则表达式的匹配范围不能横跨多个文本元素。

上面的模式设置同样影响 ExcludeTitle 参数。例如,模式 3 要求被排除的窗口的标题精确匹配 ExcludeTitle 中指定的名称。

Fast|Slow

Fast:快速模式,这个是默认值。使用 Fast 的性能比使用 Slow 要好得多,但是对于窗口操作类命令中的 WinText 参数,某些类型的窗口中的文本元素可能不能被检测到。

Slow:慢速模式,速度会比较慢,但是 WinText 可以匹配到窗口中所有可能的文本元素。Window Spy 中显示在“slow Hidden Text”部分的文本都要求使用慢速模式来匹配。

注意

这个命令影响所有的窗口操作类命令,例如 IfWinExistWinActivate

如果未指定,默认使用 1 和 fast

一般来说,只有在用窗口标题或者快速模式的 WinText 参数搜索不到窗口的时候才使用慢速模式。因为当任一个窗口正忙或者无响应的时候慢速模式会变得相当的慢。

AutoHotkey 自带的 Window Spy 将需要使用慢速模式检测的文本元素放在一个独立的区域中显示,这样就可以很容易的决定是否使用慢速模式。

如果你要同时修改两个参数,可以使用这个命令两次:
SetTitleMatchMode, 2
SetTitleMatchMode, slow

内置变量 A_TitleMatchModeA_TitleMatchModeSpeed 存储了当前的设置。

与当前的 TitleMatchMode 设置无关,WinTitleWinTextExcludeTitle 以及 ExcludeText 都是大小写敏感的。但是有一个例外,就是正则表达式中 大小写敏感设置 ,例如:i)untitled - notepad

每一个新运行的 Thread/线程(例如一个 hotkey/热键custom menu item/自定义菜单,或 timed/定时器 事件)会将该命令的设置重置为默认值。要更改该命令的默认值,可以将命令放在脚本的自动执行区域(脚本的顶部)。

相关命令

SetWinDelay, IfWinExist, WinActivate, RegExMatch()

示例

SetTitleMatchMode 2
; 或者:
SetTitleMatchMode RegEx

SetTitleMatchMode Slow  ; Slow/Fast 可以在其它的模式之外单独进行设置。