SetTitleMatchMode

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

SetTitleMatchMode, MatchMode
SetTitleMatchMode, Speed

参数

MatchMode

指定下列值之一:

Speed

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

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

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

备注

如果没有使用过 SetTitleMatchMode, 默认的匹配模式为 1, 且默认的速度为 Fast.

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

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

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

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

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

SetTitleMatchMode, 2
SetTitleMatchMode, Slow

内置变量 A_TitleMatchModeA_TitleMatchModeSpeed 包含了当前的设置.

不管当前的匹配模式如何, WinTitle, WinText, ExcludeTitleExcludeText 都是区分大小写的. 唯一的例外是带不区分大小写选项的 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"