SetTitleMatchMode

Sets the matching behavior of the WinTitle parameter in built-in functions such as WinWait.

SetTitleMatchMode MatchMode
SetTitleMatchMode "Fast|Slow"

Parameters

MatchMode

One of the following digits or the word RegEx:

1: A window's title must start with the specified WinTitle to be a match.
2: A window's title can contain WinTitle anywhere inside it to be a match.
3: A window's title must exactly match WinTitle to be a match.

"RegEx": Changes WinTitle, WinText, ExcludeTitle, and ExcludeText to accept regular expressions. For example: WinActivate "Untitled.*Notepad".

Note:

The modes above also affect ExcludeTitle in the same way as WinTitle. For example, mode 3 requires that a window's title exactly match ExcludeTitle for that window to be excluded.

Fast|Slow

One of the following words to specify how the WinText and ExcludeText parameters should be matched:

Fast: This is the default behavior. Performance may be substantially better than Slow, but certain types of controls are not detected. For instance, text is typically detected within Static and Button controls, but not Edit controls, unless they are owned by the script.

Slow: Can be much slower, but works with all controls which respond to the WM_GETTEXT message.

Remarks

This function affects the behavior of all windowing functions, e.g. WinExist and WinActivate. WinGetText is affected in the same way as other functions, but it always uses the Slow method to retrieve text.

If unspecified, TitleMatchMode defaults to 2 and fast.

If a window group is used, the current title match mode applies to each individual rule in the group.

Generally, the slow mode should be used only if the target window cannot be uniquely identified by its title and fast-mode text. This is because the slow mode can be extremely slow if there are any application windows that are busy or "not responding".

Window Spy has an option for Slow TitleMatchMode so that its easy to determine whether the Slow mode is needed.

If you wish to change both attributes, run the function twice as in this example:

SetTitleMatchMode 2
SetTitleMatchMode "slow"

The built-in variables A_TitleMatchMode and A_TitleMatchModeSpeed contain the current settings.

Regardless of the current TitleMatchMode, WinTitle, WinText, ExcludeTitle and ExcludeText are case sensitive. The only exception is the case-insensitive option of the RegEx mode; for example: i)untitled - notepad.

Every newly launched thread (such as a hotkey, custom menu item, or timed subroutine) starts off fresh with the default setting for this function. That default may be changed by using this function in the auto-execute section (top part of the script).

Related

SetWinDelay, WinExist, WinActivate, RegExMatch

Example

SetTitleMatchMode 1
; OR:
SetTitleMatchMode "RegEx"

SetTitleMatchMode "Slow"  ; Slow/Fast can be set independently of all the other modes.