设置 WinTitle 参数在内置函数中的匹配行为, 如 WinWait.
SetTitleMatchMode MatchMode SetTitleMatchMode Speed
指定下列数字的其中一个或单词 RegEx:
WinActivate "Untitled.*Notepad"
.
RegEx 还适用于 ahk_class 和 ahk_exe; 例如, ahk_class IEFrame
会搜索类名包含有 IEFrame 的所有窗口(这是由于在默认情况下, 正则表达式在目标字符串 任意位置 查找匹配).
对于 WinTitle, 每个部分是分开的. 例如, 在 "i)^untitled ahk_class i)^notepad$ ahk_pid " mypid
中, "i)^untitled"
和 "i)^notepad$"
都是独立的正则模式且 mypid
总是比较数值(它并不是一个正则模式).
对于 WinText, 每个文本元素(比如: 每个控件的文本) 都是独立匹配正则表达式的. 因此, 它不可能有跨越多个文本元素的匹配.
上面的模式还会对 ExcludeTitle 产生与 WinTitle 相同的影响. 例如, 模式 3 要求被排除的窗口的标题必须准确匹配 ExcludeTitle.
类型: 字符串
以下单词之一来指定 WinText 和 ExcludeText 参数应如何匹配:
Fast: 这是默认行为. 性能可能大大优于 Slow, 但某些类型的控件不会被检测到. 例如, 文本通常会在静态和按钮控件中被检测到, 但不会在编辑控件中被检测到, 除非它们为脚本所拥有.
Slow: 速度慢得多, 但适用于所有能响应 WM_GETTEXT 消息的控件.
此函数影响所有窗口函数的行为, 例如 WinExist 和 WinActivate. WinGetText 受影响的方式与其他函数相同, 但它总是使用 Slow 方法来检索文本.
如果未指定, 则 TitleMatchMode 默认为 2 和 fast.
如果使用窗口组, 则当前标题匹配模式适用于组中的每个单独的规则.
通常, 只有在无法通过其标题和 fast-模式文本唯一标识目标窗口时, 才应该使用 slow 模式. 这是因为当任意一个应用程序窗口正忙或 "无响应" 时, 慢速模式会非常慢.
Window Spy 有 Slow TitleMatchMode 的选项, 所以它很容易确定是否需要 Slow 模式.
如果您想同时改变两个属性, 请执行函数两次, 例如:
SetTitleMatchMode 2 SetTitleMatchMode "slow"
内置变量 A_TitleMatchMode 和 A_TitleMatchModeSpeed contain 包含了当前的设置.
不管当前的 TitleMatchMode 如何, WinTitle, WinText, ExcludeTitle 和 ExcludeText 都是区分大小写的. 唯一的例外是带不区分大小写选项的 RegEx 模式; 例如: i)untitled - notepad
.
每个新运行的线程(如 热键, 自定义菜单项或定时子程序) 都会以此函数的默认设置开始. 这个默认设置可以通过在脚本启动中使用此函数来改变.
SetWinDelay, WinExist, WinActivate, RegExMatch