SetTitleMatchMode

Bestimmt das Übereinstimmungsverhalten des FensterTitel-Parameters von Befehlen wie WinWait.

SetTitleMatchMode, MatchModus
SetTitleMatchMode, Geschw

Parameter

MatchModus

Geben Sie einen der folgenden Werte an:

1: Standardverhalten. Der Titel eines Fensters muss mit dem angegebenen FensterTitel beginnen, um eine Übereinstimmung zu sein.

2: Der Titel eines Fensters kann den angegebenen FensterTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein.

3: Der Titel eines Fensters muss genau mit dem angegebenen FensterTitel übereinstimmen, um eine Übereinstimmung zu sein.

RegEx [v1.0.45+]: Erlaubt reguläre Ausdrücke in FensterTitel, FensterText, AusnahmeTitel und AusnahmeText, z.B. WinActivate Unbenannt.*Editor. RegEx gilt auch für ahk_class und ahk_exe, z.B. würde ahk_class IEFrame nach einem Fenster suchen, dessen Klassenname irgendwo IEFrame enthält (weil reguläre Ausdrücke überall in der Zeichenkette eine Übereinstimmung finden können). Jede Komponente in FensterTitel muss separat behandelt werden, z.B. sind in i)^unbenannt ahk_class i)^editor$ ahk_pid %meinepid% die Komponenten i)^unbenannt und i)^editor$ separate RegEx-Suchmuster, während %meinepid% immer numerisch verglichen wird (es ist kein RegEx-Suchmuster). Im Falle von FensterText wird jedes Textelement (also der Text jedes Steuerelements) separat mit dem RegEx abgeglichen, folglich ist eine Übereinstimmung mit mehr als einem Textelement nicht möglich. Aufgrund eines 1023-Zeichen-Limits können sehr lange Suchmuster zu unerwarteten Ergebnissen führen.

Die obigen Modi haben auf AusnahmeTitel dieselbe Wirkung wie auf FensterTitel. Zum Beispiel erfordert Modus 3, dass der Titel eines Fensters genau mit AusnahmeTitel übereinstimmt, damit dieses Fenster ignoriert wird.

Von den Modi hat nur der RegEx-Modus einen Effekt auf die Nicht-Titel-Fensterübereinstimmungskriterien ahk_class und ahk_exe. Diese Übereinstimmungskriterien funktionieren in jedem der nummerierten Modi identisch.

Geschw

Geben Sie eines der folgenden Wörter an, um zu bestimmen, wie die Parameter FensterText und AusnahmeText behandelt werden sollen:

Fast: Standardverhalten. Erzielt oft eine bessere Performanz als der langsame Modus, aber bestimmte Arten von Steuerelementen werden nicht erkannt. Zum Beispiel wird der Text in Static- und Button-Steuerelementen üblicherweise erkannt, aber nicht in Edit-Steuerelementen, es sei denn, sie gehören zum Skript.

Slow: Kann deutlich langsamer sein, funktioniert aber für alle Steuerelemente, die auf die WM_GETTEXT-Meldung reagieren.

Bemerkungen

Wenn SetTitleMatchMode nicht verwendet wird, ist der Übereinstimmungsmodus standardmäßig 1 und die Geschwindigkeit standardmäßig schnell.

Dieser Befehl beeinflusst das Verhalten von allen fensterspezifischen Befehlen, z.B. WinExist() und WinActivate. WinGetText und ControlGetText werden auf die gleiche Weise beeinflusst, verwenden aber immer den langsamen Modus zum Abrufen von Text.

Wenn eine Fenstergruppe verwendet wird, gilt der aktuelle Titelübereinstimmungsmodus für jede einzelne Regel in der Gruppe.

Generell sollte der langsame Modus nur dann verwendet werden, wenn das Zielfenster nicht eindeutig durch seinen Titel oder den im schnellen Modus ermittelten Text identifiziert werden kann. Der Grund dafür ist, dass der langsame Modus extrem langsam sein kann, wenn es Anwendungsfenster gibt, die beschäftigt sind oder "nicht reagieren".

Window Spy verfügt über die Option Slow TitleMatchMode, mit der leicht festgestellt werden kann, ob der langsame Modus erforderlich ist.

Wenn Sie beide Attribute ändern möchten, führen Sie den Befehl zweimal aus. Zum Beispiel:

SetTitleMatchMode, 2
SetTitleMatchMode, Slow

Die internen Variablen A_TitleMatchMode und A_TitleMatchModeSpeed enthalten die aktuellen Einstellungen.

Egal welcher Übereinstimmungsmodus verwendet wird, FensterTitel, FensterText, AusnahmeTitel und AusnahmeText sind immer Groß-/Kleinschreibung-sensitiv. Die einzige Ausnahme ist die i-Option (nicht Groß-/Kleinschreibung-sensitiv) des RegEx-Modus, z.B. i)unbenannt - editor.

Jeder neue Thread (z.B. ein Hotkey, ein benutzerdefinierter Menüpunkt oder eine zeitgesteuerte Subroutine) verwendet zunächst die Standardeinstellung des Befehls. Diese Standardeinstellung kann geändert werden, indem der Befehl im automatischen Ausführungsbereich (ganz oben im Skript) verwendet wird.

FensterTitel-Parameter, SetWinDelay, WinExist(), WinActivate, RegExMatch()

Beispiele

Erlaubt fensterspezifischen Befehlen mit Fenstern zu arbeiten, deren Titel FensterTitel an beliebiger Stelle und nicht am Anfang enthalten.

SetTitleMatchMode 2

Erlaubt fensterspezifischen Befehlen, eventuell mehr Steuerelemente zu erkennen, aber auf Kosten der Performanz. Beachten Sie, dass Slow/Fast unabhängig von den anderen Modi gesetzt werden kann.

SetTitleMatchMode Slow

Verwenden Sie den RegEx-Modus, um auf einfache Weise mehrere Fenster auszuschließen. Ersetzen Sie die folgenden AusnahmeTitel mit echten Fenstertiteln, die nicht mitgezählt werden sollen.

SetTitleMatchMode RegEx
WinGet, AnzahlAlle, Count
WinGet, AnzahlAusnahme, Count,,, AusnahmeTitel1|AusnahmeTitel2
MsgBox % AnzahlAusnahme " von " AnzahlAlle " Fenstern wurden gezählt"