
はじめに
こんにちは。ティーマネジメントのシステム担当ムギです。
WinActor®で動作させたいウィンドウは表示されているはずなのにエラーが出る、
気づいたらウィンドウ識別ルールが大量に生成されていた…といった経験はありませんか?
私はウィンドウ識別ルールを理解せずに何度か上記のような状況に陥ったことがあります…笑
そこで、今回はWinActor® のウィンドウ識別ルールについてご紹介したいと思います。
ウィンドウ識別ルールとは
まず、ウィンドウ識別ルールとは、WinActor®が操作対象のウィンドウを判別するための情報を指します。
操作させたいウィンドウが表示されていても、ウィンドウ識別ルールの内容と
表示中のウィンドウの状態が異なっていると正常に操作対象のウィンドウと判別されず、
シナリオ実行エラーになる場合があります。
ウィンドウ識別ルールは「ウィンドウ識別名」という名前がつけられ、
ウィンドウ識別ルール画面で管理されます。
ウィンドウ識別ルールには4つの種類があります。
ルールの詳細については後ほど詳しくご紹介します。
ウィンドウ識別ルール画面はフローチャートツールバーのウィンドウ識別ルールアイコンをクリックすると
表示することができます。(Ctirl+Wでも可)

ウィンドウ識別ルール画面の初期状態の画面は何もウィンドウ識別名が存在しません。
ここにウィンドウ名が追加されていきます。

ウィンドウ識別名の追加
ウィンドウ識別名は、操作対象のウィンドウをWinActor®に認識させた場合に生成されます。
その際、対象のウィンドウの情報が識別ルールとして取得され、ウィンドウ識別名に紐づきます。
ウィンドウ指定が必要なノードを使用する場合を例としてウィンドウを認識させましょう。
※[ウィンドウ状態待機]ノードを例に使用します。
<1>プロパティ画面の「ターゲット選択」をクリック

<2>操作対象のウィンドウを選択

<3>「ウィンドウ識別名」にウィンドウ名が表示されているか確認

これでウィンドウ識別名が生成されました。
ウィンドウ識別名ルール画面を開くと先ほど取得した識別名「メモ1.txt-メモ帳」が追加されていることが確認できます。
ウィンドウ識別名をクリックするとウィンドウ識別ルールが表示されます。

※操作対象のウィンドウが同一でも、ウィンドウサイズが異なると別のウィンドウとして
識別情報が記録されるためご注意ください。
「ウィンドウ名_1」「ウィンドウ名_2」…のような名称で記録されます。


ウィンドウ識別ルール画面の項目
ウィンドウ識別ルール画面でウィンドウ識別名を選択すると下図のような情報が表示されます。
この項目の設定を変更することで、ウィンドウ識別ルールを変更することができます。

①識別情報
・ウィンドウ識別ルールとなる情報の名称
・4種類あり ※詳細は後述
②識別方式
・識別情報をどのように判定するか選択
③文字列
・識別情報を判定する際に比較対象となる文字列
・初期値は記録時情報と同じ
・255文字まで編集可能
④記録時情報
・対象のウィンドウを認識させたときに取得した情報
・255文字まで編集が可能だが、初回編集時は確認ダイアログが表示(2回目以降は表示されない)
ウィンドウ識別ルールの種類
ウィンドウ識別ルールで設定できる識別情報は4種類あります。
【ウィンドウ識別ルール】
●ウィンドウタイトル
・ウィンドウのタイトルバーに表示されている文字列
・表示されているウィンドウのタイトルバーと「文字列」欄に設定した値を比較し判定する
▶識別方式
・指定しない:ウィンドウタイトルを識別条件としない
・一致する:「文字列」欄の内容とウィンドウ名が一致する
・を含む:「文字列」欄の内容がウィンドウ名に含まれる
・で始まる:「文字列」欄の内容でウィンドウ名が始まる
・で終わる:「文字列」欄の内容でウィンドウ名が終わる
・正規表現:「文字列」欄の正規表現とウィンドウ名がマッチする
●ウィンドウクラス名
・アプリケーション作成者がアプリケーションに付与する内部的な名前
・表示されているウィンドウクラス名と「文字列」欄に設定した値を比較して判定する
▶識別方式
・指定しない:ウィンドウクラス名を識別条件としない
・一致する:「文字列」欄の内容とウィンドウクラス名が一致する
●プロセス名
・対象アプリケーションのファイル名
・表示されているプロセス名と「文字列」欄に設定した値を比較して判定する
▶識別方式
・指定しない:プロセス名を識別条件としない
・一致する:「文字列」欄の内容とプロセス名が一致する(大文字小文字は区別しない)
●ウィンドウサイズ
・ウィンドウの幅および高さ
・表示されているウィンドウサイズと「文字列」欄に設定した値を比較して判定する
▶識別方式
・指定しない:ウィンドウサイズを識別条件としない
・等しい:「文字列」欄の値とウィンドウサイズが一致する
・以上:「文字列」欄の値以上のウィンドウサイズである
・以下:「文字列」欄の値以下のウィンドウサイズである

例えば、日付がファイル名の末尾につくようなファイルを扱う場合は
「ウィンドウタイトル」の識別ルールの「文字列」欄には日付以外の文字を設定し、
識別方式を「を含む」や「で始まる」などに変更することでエラーを回避できます。
ウィンドウ識別名の整理
各ノードやライブラリは、ウィンドウ識別ルール画面で
ドラッグ&ドロップをすると他のウィンドウ識別名に移動させることができます。
先に紹介したように、同じウィンドウなのに記録時のサイズが異なったために
別のウィンドウ識別ルールとして記録されてしまった場合などは
1つにまとめる方が後々の管理がしやすくなります。

不要になったウィンドウ識別名は削除することも可能です。
ただし、何らかのノードやライブラリでウィンドウ識別名が使用されている場合は削除できません。
おわりに
いかがでしたでしょうか。
ウィンドウ識別ルールを正しく設定することは、ウィンドウ操作のエラー防止や
シナリオのメンテンナンス性の向上にもつながります。
もしシナリオ実行時に操作対象のウィンドウが表示されているにもかかわらず
「~に一致するウィンドウが存在しない」といったエラーが表示される場合は
ウィンドウ識別ルールの設定に問題がある可能性がありますので、
ウィンドウ識別ルールを見直してみてください。