SetTitleMatchMode

WinWaitなどの組み込み関数におけるWinTitleパラメータのマッチング動作を設定します。

SetTitleMatchMode MatchMode
SetTitleMatchMode Speed

パラメータ

MatchMode

型:整数または文字列

以下のいずれかの値を指定します。

1:ウィンドウのタイトルは、指定されたWinTitleで始まらなければ一致しない。

2:デフォルトの動作。ウィンドウのタイトルは、その中のどこかにWinTitleを含んでいても一致する。

3:ウィンドウのタイトルはWinTitleと完全に一致しなければならない。

RegEx: Changes WinTitle, WinText, ExcludeTitle, and ExcludeText to accept regular expressions, e.g. WinActivate "Untitled.*Notepad". RegExはahk_classahk_exeにも適用されます。例えば、"ahk_class IEFrame "は、クラス名にIEFrameが含まれるウィンドウを検索します(デフォルトでは、正規表現はターゲット文字列のどこでもマッチを見つけるからです)。例えば"i)^untitled ahk_class i)^notepad$ ahk_pid " mypidでは、i)^untitledi)^notepad$は別々の正規表現パターンであり、mypidは常に数値で比較される(正規表現パターンではない)。WinTextの場合、各テキスト要素(つまり各コントロールのテキスト)は別々にRegExと照合されるため、複数のテキスト要素にまたがる照合はできません。

上記のモードは、WinTitleと同様にExcludeTitleにも影響する。例えば、モード3では、ウィンドウのタイトルがExcludeTitleと完全に一致するウィンドウを除外する必要があります。

Of the modes, only RegEx mode affects the non-title window matching criteria ahk_class and ahk_exe. Those matching criteria will operate identically in any of the numbered modes.

Speed

型:文字列

WinTextExcludeTextパラメータをどのようにマッチさせるかを示すために、以下の単語のいずれかを指定する:

Fast:デフォルトの動作。パフォーマンスはスローモードよりも大幅に向上するかもしれないが、ある種のコントロールは検出されない。例えば、テキストは通常、静的コントロールとボタンコントロールの中で検出されるが、スクリプトによって所有されていない限り、編集コントロールは検出されない。

Slow:かなり遅くなるが、WM_GETTEXTメッセージに応答するすべてのコントロールで動作する。

戻り値

型:整数または文字列

この関数は、変更前の値(A_TitleMatchModeまたはA_TitleMatchModeSpeed)を返します。

備考

SetTitleMatchModeを使用しない場合、デフォルトのマッチ・モードは2で、デフォルトのスピードは速い。

この関数は、WinExistWinActivateなど、すべてのウィンドウ関数の動作に影響する。WinGetText and ControlGetText are affected in the same way as other functions, but they always use the slow mode to retrieve text.

ウィンドウ・グループを使用する場合、現在のタイトル・マッチ・モードは、グループ内の個々のルールに適用される。

一般に、低速モードは、ターゲットウィンドウがそのタイトルと高速モードテキストによって一意に識別できない場合にのみ使用されるべきである。これは、ビジー状態や「応答なし」のアプリケーション・ウィンドウがあると、スロー・モードが極端に遅くなることがあるからだ。

Window SpyにはSlow TitleMatchModeのオプションがあり、スローモードが必要かどうかを簡単に判断できます。

両方の属性を変更したい場合は、この例のように関数を2回実行してください:

SetTitleMatchMode 2
SetTitleMatchMode "Slow"

組み込み変数A_TitleMatchModeA_TitleMatchModeSpeedには、現在の設定が格納されています。

Regardless of the current match mode, WinTitle, WinText, ExcludeTitle and ExcludeText are case-sensitive. 唯一の例外は、"i)untitled - notepad"のようなRegExモードの大文字小文字を区別しないオプションである。

新しく起動するスレッドホットキーカスタムメニュー項目時間指定サブルーチンなど)はすべて、この機能のデフォルト設定で新しくスタートします。このデフォルトは、スクリプト起動時にこの関数を使用することで変更することができます。

The WinTitle Parameter, SetWinDelay, WinExist, WinActivate, RegExMatch

ウィンドウ関数は、タイトルの先頭にWinTitleを含むウィンドウを操作する。

SetTitleMatchMode 1

ウィンドウ関数がより多くのコントロールタイプを検出できるようになるが、パフォーマンスは低下する。Slow/Fastは他のすべてのモードから独立して設定できることに注意。

SetTitleMatchMode "Slow"

Use RegEx mode to easily exclude multiple windows. Replace the following ExcludeTitles with actual window titles that you want to exclude from counting.

SetTitleMatchMode "RegEx"
CountAll := WinGetCount()
CountExcluded := WinGetCount(,, "ExcludeTitle1|ExcludeTitle2")
MsgBox CountExcluded " out of " CountAll " windows were counted"