Hitachi

JP1 Version 12 JP1/IT Desktop Management 2 配布機能 運用ガイド


17.6.1 ウィンドウ処理について

MAINセクションでは、表示されたダイアログボックスに対して、コンピュータのユーザが誤って応答したり、キーボードやマウスを操作したりしたために、インストールが中断するような事態に備えて、メイン処理の部分を作成する必要があります。

AITファイルでのウィンドウ処理を次の図に示します。

図17‒14 AITファイルでのウィンドウ処理

[図データ]

AITファイルは、ループ中で繰り返しウィンドウを検索します。したがって、コンピュータのユーザが誤ってAウィンドウに応答してBウィンドウが表示された状態でも、AITファイルはAウィンドウの処理をスキップしてBウィンドウの処理を実行できます。

AITファイルを作成する場合は、出力されるウィンドウを調査し、そのウィンドウに対する処理を並べます。このような処理構造によって、出力されるウィンドウの順序やユーザの操作に関係なく処理を完結できます。

AITファイルでのウィンドウ処理は、次の処理を1つのパーツとしてループ中にシーケンシャルに並べます。

これらのウィンドウ処理では、表17-2および表17-3に示すAPIを使用します。

表17‒2 ウィンドウの検索で使用するAPI

API名称

説明

AIT_FocusWindow

ウィンドウを検索し、フォーカスを設定します。

AIT_CtrlSetFocus

特定のコントロールにフォーカスを設定します。

表17‒3 ウィンドウの操作で使用するAPI

API名称

説明

AIT_VerifyExistence

ウィンドウ中に、ボタンやチェックボックスなどのコントロールがあるかないかを確認します。

AIT_VerifyEnabled

コントロールが使用可能かどうかを確認します。

AIT_VerifyPos

コントロールの位置を確認します。

AIT_PlayKey

[Enter]キーを押すなどの、キーボード操作をシミュレートします。

ウィンドウ処理の注意事項

Windows Server 2019、Windows Server 2016、Windows 10、Windows 8.1、Windows 8、Windows Server 2012、Windows 7、またはWindows Server 2008 R2環境で、AITファイルを使用してソフトウェアをリモートインストールする場合、ウィンドウ操作のAPI(AIT_FocusWindowおよびAIT_CtrlSetFocus)ではアプリケーションにフォーカスが設定できないことがあります。その際は、レコーダ操作のAPIであるAIT_ExecまたはAIT_ExecCommandの実行後に、AIT_PlayKeyで[Alt]+[Tab]キーをシミュレートし、フォーカスをデスクトップから移動してください。

次に、これらのAPIの役割と使用方法について説明します。各APIのパラメタおよび戻り値の詳細については、「19. APIリファレンス」を参照してください。

〈この項の構成〉

(1) AIT_FocusWindow

AIT_FocusWindowはウィンドウを検索し、そのウィンドウにフォーカスを設定します。AIT_FocusWindowでウィンドウを検索してフォーカスを設定したあと、ウィンドウに対する処理を行います。

ウィンドウを検索するためには、パラメタとして、ウィンドウテキストとクラス名を指定します。ウィンドウテキストとクラス名を調査するには、ウィンドウプロパティツールを使用すると便利です。また、レコーダで自動生成したAITファイルのコードを利用する方法もあります。

戻り値は、ウィンドウの検索に成功した場合はウィンドウハンドル、検索に失敗した場合は0になります。

次に、AIT_FocusWindowの使用例を示します。

図17‒15 AIT_FocusWindowの使用例

[図データ]

(2) AIT_CtrlSetFocus

AIT_CtrlSetFocusは、特定のコントロールにフォーカスを設定します。ウィンドウの中に複数のコントロールがある場合は、AIT_CtrlSetFocusでコントロールにフォーカスを設定し、そのあとユーザ操作をシミュレートします。

コントロールを指定するためには、コントロールのキャプションまたはコントロールIDを指定します。また、コントロールの種類(ボタン、リストボックスなど)も指定します。

次に、コントロールのキャプションを指定したAIT_CtrlSetFocusの使用例を示します。

図17‒16 AIT_CtrlSetFocusの使用例

[図データ]

(3) AIT_VerifyExistence

AIT_VerifyExistenceは、コントロールの存在を確認します。

例えば、同じキャプションを持つウィンドウが複数存在する場合、AIT_FocusWindowでウィンドウにフォーカスを設定しても、そのウィンドウが操作対象でないおそれがあります。このような場合にAIT_VerifyExistenceを使用して、ウィンドウの中に特定のコントロールが存在することを確認し、そのウィンドウが操作対象であることを判定します。

コントロールを指定するためには、コントロールのキャプションまたはコントロールIDを指定します。また、コントロールの種類(ボタン、リストボックスなど)も指定します。戻り値は、コントロールが存在する場合は1、存在しない場合は0になります。

次に、コントロールのキャプションを指定したAIT_VerifyExistenceの使用例を示します。

図17‒17 AIT_VerifyExistenceの使用例

[図データ]

(4) AIT_VerifyEnabled

AIT_VerifyEnabledは、コントロールが使用可能かどうかを確認します。

例えば、チェックボックスとボタンが関連づけられていて、チェックボックスをチェックするとボタンが活性化し(使用可能)、チェックを外すとボタンが非活性(使用不可)になる場合があります。このような場合は、AIT_VerifyEnabledでボタンが使用可能かどうかを確認し、使用できれば「ボタンを押す」というユーザ操作をシミュレートします。

また、AIT_VerifyEnabledは、AIT_VerifyExistenceやAIT_VerifyPosと組み合わせて使用します。AIT_VerifyExistenceやAIT_VerifyPosでコントロールの存在を確認したあと、そのコントロールが使用可能かどうかを確認します。

コントロールを指定するためには、コントロールのキャプションまたはコントロールIDを指定します。また、コントロールの種類(ボタン、リストボックスなど)も指定します。戻り値は、コントロールが使用可能な場合は1、使用できない場合は0になります。

次に、コントロールのキャプションを指定したAIT_VerifyEnabledの使用例を示します。

図17‒18 AIT_VerifyEnabledの使用例

[図データ]

(5) AIT_VerifyPos

AIT_VerifyPosは、コントロールのタブオーダーを確認します。AIT_VerifyPosはAIT_VerifyExistenceと同様の目的に使用しますが、ウィンドウ中に同じキャプションを持つコントロールが複数存在する場合に、タブオーダーも指定することで、対象のコントロールの存在を確認します。

コントロールを指定するためには、コントロールのキャプションまたはコントロールIDを指定します。また、コントロールの種類(ボタン、リストボックスなど)とタブオーダーも指定します。戻り値は、コントロールのタブオーダーが指定したパラメタと一致した場合は1、一致しない場合は0になります。

次に、コントロールのキャプションを指定したAIT_VerifyPosの使用例を示します。

図17‒19 AIT_VerifyPosの使用例

[図データ]

(6) AIT_PlayKey

AIT_PlayKeyは、キーボード操作をシミュレートします。

パラメタとして、キーボードから入力する文字列を指定します。例えば、パラメタとして「abcd」を指定すると、「abcd」という文字列が入力されます。また、[Esc]キーの入力を意味する{ESC}や[Alt]+[F]キーの入力を意味する%(F)など、特殊な意味を持つ文字を入力することもできます。

次に、AIT_PlayKeyの使用例を示します。

図17‒20 AIT_PlayKeyの使用例

[図データ]

(7) 自動生成されたウィンドウ処理の例

レコーディングして自動生成されたAITファイルには、ウィンドウの情報やウィンドウに対する処理が記録されています。自動生成されたウィンドウ処理の例を次の図に示します。

図17‒21 自動生成されたウィンドウ処理の例

[図データ]