MAINセクションでは,表示されたダイアログボックスに対して,クライアントユーザが誤って応答したり,キーボードやマウスを操作したりしたために,インストールが中断するような事態に備えて,メイン処理の部分を作成する必要があります。
AITファイルでのウィンドウ処理を次の図に示します。
図2-14 AITファイルでのウィンドウ処理
AITファイルは,ループ中で繰り返しウィンドウを検索します。したがって,クライアントユーザが誤ってAウィンドウに応答してBウィンドウが表示された状態でも,AITファイルはAウィンドウの処理をスキップしてBウィンドウの処理を実行できます。
AITファイルを作成する場合は,出力されるウィンドウを調査し,そのウィンドウに対する処理を並べます。このような処理構造によって,出力されるウィンドウの順序やユーザの操作に関係なく処理を完結できます。
AITファイルでのウィンドウ処理は,次の処理を一つのパーツとしてループ中にシーケンシャルに並べます。
これらのウィンドウ処理では,表2-2および表2-3に示すAPIを使用します。
表2-2 ウィンドウの検索で使用するAPI
API名称 | 説明 |
---|---|
AIT_FocusWindow | ウィンドウを検索し,フォーカスを設定します。 |
AIT_CtrlSetFocus | 特定のコントロールにフォーカスを設定します。 |
表2-3 ウィンドウの操作で使用するAPI
API名称 | 説明 |
---|---|
AIT_VerifyExistence | ウィンドウ中に,ボタンやチェックボックスなどのコントロールがあるかないかを確認します。 |
AIT_VerifyEnabled | コントロールが使用可能かどうかを確認します。 |
AIT_VerifyPos | コントロールの位置を確認します。 |
AIT_PlayKey | [Enter]キーを押すなどの,キーボード操作をシミュレートします。 |
次に,これらのAPIの役割と使用方法について説明します。各APIのパラメタおよび戻り値の詳細については,「4. APIリファレンス」を参照してください。
AIT_FocusWindowはウィンドウを検索し,そのウィンドウにフォーカスを設定します。AIT_FocusWindowでウィンドウを検索してフォーカスを設定したあと,ウィンドウに対する処理を行います。
ウィンドウを検索するためには,パラメタとして,ウィンドウテキストとクラス名を指定します。ウィンドウテキストとクラス名を調査するには,ウィンドウプロパティツールを使用すると便利です。また,レコーダで自動生成したAITファイルのコードを利用する方法もあります。
戻り値は,ウィンドウの検索に成功した場合はウィンドウハンドル,検索に失敗した場合は0になります。
次に,AIT_FocusWindowの使用例を示します。
図2-15 AIT_FocusWindowの使用例
AIT_CtrlSetFocusは,特定のコントロールにフォーカスを設定します。ウィンドウの中に複数のコントロールがある場合は,AIT_CtrlSetFocusでコントロールにフォーカスを設定し,そのあとユーザ操作をシミュレートします。
コントロールを指定するためには,コントロールのキャプションまたはコントロールIDを指定します。また,コントロールの種類(ボタン,リストボックスなど)も指定します。
次に,コントロールのキャプションを指定したAIT_CtrlSetFocusの使用例を示します。
図2-16 AIT_CtrlSetFocusの使用例
AIT_VerifyExistenceは,コントロールの存在を確認します。
例えば,同じキャプションを持つウィンドウが複数存在する場合,AIT_FocusWindowでウィンドウにフォーカスを設定しても,そのウィンドウが操作対象でないおそれがあります。このような場合にAIT_VerifyExistenceを使用して,ウィンドウの中に特定のコントロールが存在することを確認し,そのウィンドウが操作対象であることを判定します。
コントロールを指定するためには,コントロールのキャプションまたはコントロールIDを指定します。また,コントロールの種類(ボタン,リストボックスなど)も指定します。戻り値は,コントロールが存在する場合は1,存在しない場合は0になります。
次に,コントロールのキャプションを指定したAIT_VerifyExistenceの使用例を示します。
図2-17 AIT_VerifyExistenceの使用例
AIT_VerifyEnabledは,コントロールが使用可能かどうかを確認します。
例えば,チェックボックスとボタンが関連づけられていて,チェックボックスをチェックするとボタンが活性化し(使用可能),チェックを外すとボタンが非活性(使用不可)になる場合があります。このような場合は,AIT_VerifyEnabledでボタンが使用可能かどうかを確認し,使用可能であれば「ボタンを押す」というユーザ操作をシミュレートします。
また,AIT_VerifyEnabledは,AIT_VerifyExistenceやAIT_VerifyPosと組み合わせて使用します。AIT_VerifyExistenceやAIT_VerifyPosでコントロールの存在を確認したあと,そのコントロールが使用可能かどうかを確認します。
コントロールを指定するためには,コントロールのキャプションまたはコントロールIDを指定します。また,コントロールの種類(ボタン,リストボックスなど)も指定します。戻り値は,コントロールが使用可能な場合は1,使用できない場合は0になります。
次に,コントロールのキャプションを指定したAIT_VerifyEnabledの使用例を示します。
図2-18 AIT_VerifyEnabledの使用例
AIT_VerifyPosは,コントロールのタブオーダーを確認します。AIT_VerifyPosはAIT_VerifyExistenceと同様の目的に使用しますが,ウィンドウ中に同じキャプションを持つコントロールが複数存在する場合に,タブオーダーも指定することによって,対象のコントロールの存在を確認します。
コントロールを指定するためには,コントロールのキャプションまたはコントロールIDを指定します。また,コントロールの種類(ボタン,リストボックスなど)とタブオーダーも指定します。戻り値は,コントロールのタブオーダーが指定したパラメタと一致した場合は1,一致しない場合は0になります。
次に,コントロールのキャプションを指定したAIT_VerifyPosの使用例を示します。
図2-19 AIT_VerifyPosの使用例
AIT_PlayKeyは,キーボード操作をシミュレートします。
パラメタとして,キーボードから入力する文字列を指定します。例えば,パラメタとして「abcd」を指定すると,「abcd」という文字列が入力されます。また,[Esc]キーの入力を意味する{ESC}や[Alt]+[F]キーの入力を意味する%(F)など,特殊な意味を持つ文字を入力することもできます。
次に,AIT_PlayKeyの使用例を示します。
図2-20 AIT_PlayKeyの使用例
レコーディングして自動生成されたAITファイルには,ウィンドウの情報やウィンドウに対する処理が記録されています。自動生成されたウィンドウ処理の例を次の図に示します。
図2-21 自動生成されたウィンドウ処理の例