自動化の際、ほとんどのウィンドウはそのタイトルもしくはタイトルとテキストの組み合わせで個別に識別することができます。 そしてAutoItWindowInfoToolを使用することで(あるいは目視でも)、その情報は容易の得ることができます。 たとえばUntitled - Notepad(訳注:日本語環境では新規テキスト ドキュメント.txt - メモ帳)はnotepad.exeエディタのタイトルです。多くの場合、自動化にはこれで充分です。
注意:空文字列 "" をタイトルとテキストに使用すると現在アクティブなウィンドウが使用されます(WinTitleMatchModesのアドバンスモードではまた異なりますが)!
ウィンドウのタイトルとテキストでは大文字小文字が区別されます。 大文字小文字、句読点は正確に記述する必要があります。 この問題を解決するにはWindowInfoToolでタイトル・テキストを選択し、ctrl-cでコピーし、スクリプトに直接ペーストすることです。
advanced modesを使用すると小文字での一致が可能になります。
多くのAutoItのウィンドウ関数はタイトルとテキストの指定欄があります。ここではWinWaitActive関数をみてみましょう。この関数は指定したウィンドウが現れ、アクティブになるまでスクリプトの実行を停止します。
WinWaitActive ( "title", ["text"], [timeout] )
この関数ではタイトルのみ必須で、テキストとタイムアウト時間はオプションとなっています。 他のいくつかの関数ではテキストパラメータが必要になります。もし指定したくない場合は""(空文字列)を指定してください。 空文字列あるいはオプション指定をしないとAutoItは全てのテキスト を有効ととらえます。
上記の関数をメモ帳に使用する場合両方の方法が有効です。
WinWaitActive("Untitled - Notepad")
もしくは
WinWaitActive("Untitled - Notepad", "")
もしメモ帳のウィンドウに"This is some text"と書かれていた場合 WindowInfoToolは次のような表示になります。
WindowInfoToolでメモ帳ウィンドウのタイトルとテキストが見えます。 WindowInfoToolで見える情報は全てAutoItにも見えます。 以上で例え他のメモ帳ウィンドウが存在してもこのメモ帳ウィンドウを特定するだけの充分な情報が手にはいりました。 今の場合次のようになります。
WinWaitActive("Untitled - Notepad", "This is some text!")
ウィンドウテキストはAutoItが"見える"すべてのテキストから構成されます。 普通はエディットコントロールの内容(上の例では"This is some text")ですが他にも次のようなものを含みます。
重要なことは動かしたいウィンドウを特定するためにタイトルとともにテキストを使用できるということです。
テキスト パラメータをウィンドウ関数で使用するとその値は部分文字列として扱われます。 上の例では"is some"というテキストを使用するとウィンドウが一致したと判断されます。
以上の説明はAutoItがデフォルトモードのときの動作です。他にもより複雑に動作するための多くのアドバンスモードが用意されています。
注意: 非表示のウィンドウは"テキスト"が空("")の場合のみ"タイトル"で検索できます。