SetTitleMatchMode

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

SetTitleMatchMode, VergleichModus
SetTitleMatchMode, Geschw

Parameter

VergleichModus

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.

Die nummerierten Modi (1-3) funktionieren nur mit dem Fenstertitel, während der RegEx-Modus sowohl mit dem Fenstertitel als auch mit den Werten der Kriterien ahk_class und ahk_exe funktioniert.

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 Vergleichsmodus standardmäßig 1 und die Geschwindigkeit standardmäßig schnell. Das heißt, dass der Titel eines Fensters mit dem angegebenen FensterTitel beginnen muss, um eine Übereinstimmung zu sein, und dass der FensterText- und AusnahmeText-Vergleich performanter ist, aber mit einer geringeren Anzahl von Steuerelementtypen funktioniert.

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 Titelvergleichsmodus 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 (langsamer Titelvergleichsmodus), 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 Vergleichsmodus 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"