Solution: 172165601 表題: WINDOWS: バックグラウンドで実行されているモジュールを認識する方法 製品: Robot バージョン: 2001A.04.10、2002.05.20, OS: Windows DEFECT #: N/A PATCH #: N/A 参照事項: 作成年月日: 02-Apr-2003 改訂年月日: 質問: Robot にて、バックグラウンドで実行されているモジュールを認識し、この モジュールが終了するまで次のユーザー操作を待機させる方法はありますか。 回答: 下記の 2 つの方法があります。 1. ModuleVP を利用する方法 2. タスクマネージャのアプリケーションリストに ListViewVP を設定する方法 1. ModuleVP を利用する方法 ========================== ModuleVP は指定したモジュールが、再生中にメモリに格納されているかどうか を確認します。 下記の例では、USER.EXE がメモリに存在するかどうかを 2 秒毎に最高 30 秒間 テストし、存在しなくなったら、パスとします。 Result = ModuleVP (Exists, "Name=USER.EXE", "VP=MOD01;Wait=2,30;ExpectedResult=FAIL") 注: この ModuleVP は GUI スクリプト上に直接挿入する必要があります。 Robot 内のツールバーにある、GUI Insert Bar を使用して記録することはできません。 なお、詳しい ModuleVP 構文の使用方法についてはSQABasic 言語リファレンスガイド を参照ください。 2. タスクマネージャのアプリケーションリストに ListViewVP を設定する方法 ========================================================= タスクマネージャのアプリケーションタブにオブジェクトデータ検証ポイントを 作成し(ListViewVP が作成されます)、タスクマネージャのアプリケーションリスト をキャプチャします。 キャプチャしたリスト内で、モジュールが存在するかどうかを検証し、存在しなく なった時点で次のユーザー操作に行くよう設定します。 具体的には、下記のような手順になります。 1. Robot でスクリプト記録中に Ctrl+Alt+Del を押下すると記録が中断されてしまう ので、記録を開始する前にタスクマネージャを表示し最小化しておきます。 2. タスクマネージャのアプリケーションリストにオブジェクトデータ検証ポイントを 作成します。なお、データのキャプチャ確認画面では、[Identification method] の [Rows:] を [By Key/Value] に変更します。値を基にした検証ポイントを作成 することにより、リストの順番に関係なく、同じタスクがリスト内にあるかどうか だけを検証できます。 3. 手順 2 で作成した検証ポイントを編集します。編集する際には、「このモジュール が存在しなくなったら、次のユーザー操作へ行く」ように設定します(モジュールが 既にリスト内に存在しているため)。つまり、ベースライン(モジュールがリストに ある状態)と異なったらパス( Result 値が 1)になるよう、スクリプトを修正します。 また、待ち時間も挿入し、このモジュールがタスクマネージャ内に存在しなくなる まで待つように設定します。 下記の例では、アプリケーションリストの内容が異なるかどうかを2 秒毎に最高 30 秒間 テストし、異なったらパスとします。 Result = ListViewVP (CompareData, "ObjectIndex=1", "VP=Object Data;Wait=2,30;ExpectedResult=FAIL") ご不明な点等ありましたら、ラショナルカスタマサービスへお問い合わせ下さい。