SetTitleMatchMode

设置在类似 WinWait 命令中 WinTitle 参数的匹配模式.

SetTitleMatchMode, MatchMode
SetTitleMatchMode, Speed

参数

MatchMode

指定下列值之一:

Speed

指定以下单词之一, 来指示 WinText 和 ExcludeText 参数应如何匹配:

Fast: 默认行为. 性能比起慢速模式有较大提升, 但某些类型的控件无法被检测到. 例如, 通常能检测到 Static 和 Button 控件中的文本, 但不能检测到 Edit 控件的, 除非它们属于脚本.

Slow: 速度慢得多, 但适用于所有响应 WM_GETTEXT 消息的控件.

备注

如果没有使用过 SetTitleMatchMode, 默认的匹配模式为 1, 且默认的速度为 Fast; 也就是说, 窗口标题必须以指定的 WinTitle 开头才能形成匹配, 而 WinText 和 ExcludeText 匹配性能更好, 但控制类型少.

此命令影响所有窗口函数和命令的行为, 例如 WinExist() 和 WinActivate. WinGetText 和 ControlGetText 与其他命令一样会受到影响, 但它们总是使用慢速模式来检索文本.

如果使用窗口组, 则当前标题匹配模式适用于组中的每个单独的规则.

通常, 在使用标题和快速模式的文本无法唯一标识目标窗口时, 才应该使用慢速模式. 这是因为当任意一个应用程序窗口正忙或 "无响应" 时慢速模式会非常慢.

AutoHotkey 自带的 Window Spy 自定义版本会在单独区域中显示 slow TitleMatchMode 文本, 这样很容易判断是否需要使用 慢速 模式.

如果您想同时改变两个属性, 请执行两次命令, 例如:

SetTitleMatchMode, 2
SetTitleMatchMode, Slow

内置变量 A_TitleMatchMode 和 A_TitleMatchModeSpeed 包含了当前的设置.

不管当前的匹配模式如何, WinTitle, WinText, ExcludeTitle 和 ExcludeText 都是区分大小写的. 唯一的例外是带不区分大小写选项的 RegEx 模式, 例如: i)untitled - notepad.

每个新运行的线程(例如热键, 自定义菜单项或定时子程序) 都会以此命令的默认设置开始. 通过在脚本的自动执行段(脚本的顶部) 使用此命令可以改变这个默认设置.

The WinTitle Parameter, SetWinDelay, WinExist(), WinActivate, RegExMatch()

示例

允许窗口命令去操作在任何地方包含 WinTitle 而不是开头处的窗口.

SetTitleMatchMode 2

允许窗口命令尽可能地检测更多的控件类型, 但性能较低. 注意, Slow/Fast 可以独立于所有其他模式进行设置.

SetTitleMatchMode Slow

使用 RegEx 模式可轻松排除多个窗口. 将以下 ExcludeTitle 替换为您希望从计数中排除的实际窗口的标题.

SetTitleMatchMode RegEx
WinGet, CountAll, Count
WinGet, CountExcluded, Count,,, ExcludeTitle1|ExcludeTitle2
MsgBox % CountExcluded " out of " CountAll " windows were counted"