2.6.1 ウィンドウ処理について
MAINセクションでは、表示されたダイアログボックスに対して、コンピュータのユーザが誤って応答したり、キーボードやマウスを操作したりしたために、インストールが中断するような事態に備えて、メイン処理の部分を作成する必要があります。
AITファイルでのウィンドウ処理を次の図に示します。
AITファイルは、ループ中で繰り返しウィンドウを検索します。したがって、コンピュータのユーザが誤ってAウィンドウに応答してBウィンドウが表示された状態でも、AITファイルはAウィンドウの処理をスキップしてBウィンドウの処理を実行できます。
AITファイルを作成する場合は、出力されるウィンドウを調査し、そのウィンドウに対する処理を並べます。このような処理構造によって、出力されるウィンドウの順序やユーザの操作に関係なく処理を完結できます。
AITファイルでのウィンドウ処理は、次の処理を一つのパーツとしてループ中にシーケンシャルに並べます。
-
ウィンドウの検索
-
ウィンドウの操作
これらのウィンドウ処理では、表2-2および表2-3に示すAPIを使用します。
API名称 |
説明 |
---|---|
AIT_FocusWindow |
ウィンドウを検索し、フォーカスを設定します。 |
AIT_CtrlSetFocus |
特定のコントロールにフォーカスを設定します。 |
- ウィンドウ処理の注意事項
-
Windows 8.1、Windows 8、Windows Server 2012、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、またはWindows XP環境で、AITファイルを使用してソフトウェアをリモートインストールする場合、ウィンドウ操作のAPI(AIT_FocusWindowおよびAIT_CtrlSetFocus)ではアプリケーションにフォーカスが設定できないことがあります。その際は、レコーダ操作のAPIであるAIT_ExecまたはAIT_ExecCommandの実行後に、AIT_PlayKeyで[Alt]+[Tab]キーをシミュレートし、フォーカスをデスクトップから移動してください。
次に、これらのAPIの役割と使用方法について説明します。各APIのパラメタおよび戻り値の詳細については、「4. APIリファレンス」を参照してください。
- 〈この項の構成〉
(1) AIT_FocusWindow
AIT_FocusWindowはウィンドウを検索し、そのウィンドウにフォーカスを設定します。AIT_FocusWindowでウィンドウを検索してフォーカスを設定したあと、ウィンドウに対する処理を行います。
ウィンドウを検索するためには、パラメタとして、ウィンドウテキストとクラス名を指定します。ウィンドウテキストとクラス名を調査するには、ウィンドウプロパティツールを使用すると便利です。また、レコーダで自動生成したAITファイルのコードを利用する方法もあります。
戻り値は、ウィンドウの検索に成功した場合はウィンドウハンドル、検索に失敗した場合は0になります。
(2) AIT_CtrlSetFocus
AIT_CtrlSetFocusは、特定のコントロールにフォーカスを設定します。ウィンドウの中に複数のコントロールがある場合は、AIT_CtrlSetFocusでコントロールにフォーカスを設定し、そのあとユーザ操作をシミュレートします。
コントロールを指定するためには、コントロールのキャプションまたはコントロールIDを指定します。また、コントロールの種類(ボタン、リストボックスなど)も指定します。
次に、コントロールのキャプションを指定したAIT_CtrlSetFocusの使用例を示します。
(3) AIT_VerifyExistence
AIT_VerifyExistenceは、コントロールの存在を確認します。
例えば、同じキャプションを持つウィンドウが複数存在する場合、AIT_FocusWindowでウィンドウにフォーカスを設定しても、そのウィンドウが操作対象でないおそれがあります。このような場合にAIT_VerifyExistenceを使用して、ウィンドウの中に特定のコントロールが存在することを確認し、そのウィンドウが操作対象であることを判定します。
コントロールを指定するためには、コントロールのキャプションまたはコントロールIDを指定します。また、コントロールの種類(ボタン、リストボックスなど)も指定します。戻り値は、コントロールが存在する場合は1、存在しない場合は0になります。
次に、コントロールのキャプションを指定したAIT_VerifyExistenceの使用例を示します。
(4) AIT_VerifyEnabled
AIT_VerifyEnabledは、コントロールが使用可能かどうかを確認します。
例えば、チェックボックスとボタンが関連づけられていて、チェックボックスをチェックするとボタンが活性化し(使用可能)、チェックを外すとボタンが非活性(使用不可)になる場合があります。このような場合は、AIT_VerifyEnabledでボタンが使用可能かどうかを確認し、使用できれば「ボタンを押す」というユーザ操作をシミュレートします。
また、AIT_VerifyEnabledは、AIT_VerifyExistenceやAIT_VerifyPosと組み合わせて使用します。AIT_VerifyExistenceやAIT_VerifyPosでコントロールの存在を確認したあと、そのコントロールが使用可能かどうかを確認します。
コントロールを指定するためには、コントロールのキャプションまたはコントロールIDを指定します。また、コントロールの種類(ボタン、リストボックスなど)も指定します。戻り値は、コントロールが使用可能な場合は1、使用できない場合は0になります。
次に、コントロールのキャプションを指定したAIT_VerifyEnabledの使用例を示します。
(5) AIT_VerifyPos
AIT_VerifyPosは、コントロールのタブオーダーを確認します。AIT_VerifyPosはAIT_VerifyExistenceと同様の目的に使用しますが、ウィンドウ中に同じキャプションを持つコントロールが複数存在する場合に、タブオーダーも指定することで、対象のコントロールの存在を確認します。
コントロールを指定するためには、コントロールのキャプションまたはコントロールIDを指定します。また、コントロールの種類(ボタン、リストボックスなど)とタブオーダーも指定します。戻り値は、コントロールのタブオーダーが指定したパラメタと一致した場合は1、一致しない場合は0になります。
次に、コントロールのキャプションを指定したAIT_VerifyPosの使用例を示します。