news コラム:入力アクション使用時に気を付けたいこと

AutoMateの[入力]アクションはキーボードやマウスの操作を再現するアクションです。[対話機能]や[Webブラウザ]アクションでは対応しきれない操作のカバーや、ショートカットキー送信によるアプリケーション固有のコマンド発行など、画面に縛られない自由な自動化が可能です。しかしながら、「キーボードやマウスの操作を真似るだけ」であるため、キーボードの入力設定や操作対象の位置など、些細な環境の変化がアクションの精度に大きく影響してしまうという弱みもあります。
この記事では、[入力]アクションを使用する際に必ず押さえておきたい"処理安定化のコツ"をご紹介します。

■Windows Foregroundタイムアウトの無効化
→新しいアプリケーションウィンドウが画面上に展開された際に、アプリケーションアイコンがタスクバー上でオレンジ色に点滅している状態ではキーストローク操作が操作対象のウィンドウに送られません。この状況を防ぐためにAutoMateの設定からフォアグラウンドタイムアウトを無効化してください。この設定変更によりAutoMateからアプリケーションを起動させた際にアプリケーションアイコンが点滅せず、キーストローク動作やマウスコントロールが空振りしにくくなります。

設定が変更されていない場合、下記の手順で設定します。
1) AutoMateタスクアドミニストレーターを起動
2) 「オプション」→「システム設定」を選択し、「実行」をダブルクリック
3) [Windowsフォアグラウンドタイムアウトを無効にする]のチェックを入れる
4) 適用ボタンをクリック
※AutoMateサーバー版をご利用の場合は、AutoMate管理コンソールから、オプション>デフォルトプロパティ>その他を選択し、Windowsフォアグラウンドタイムアウトを無効化してください。

※一部端末において不具合が確認されております。詳しくはこちらをご参照ください。

■操作したいウィンドウは「必ずフォーカスする」
手動でブラウザやアプリケーションを立ち上げた場合、そのままの状態で文字入力できる場合がほとんどです。しかし、AutoMateの場合はその限りではありません。新しく立ち上がったアプリケーションが別のウィンドウの後ろに隠れてしまったり見かけ上最前面にいてもフォーカスされなかったりして、キーストロークやマウス移動が空振りする/別のウィンドウに対し実行される場合があります。そのため、入力アクションを使用する際は必ず「操作対象のウィンドウを最前面にフォーカスする」という処理構成を心掛けましょう。画面上の別ウィンドウを操作してしまったり、操作が空振りしたりすることを防ぎ、安定感の向上につながります。よりフォーカスの確度を上げたい場合は、[ウィンドウ - フォーカス]アクションの意図的な2重定義を推奨します。
また画面のフォーカスに加え、ウィンドウの大きさやサイズも指定することにより、[入力]アクションは確実性が大幅に向上します。[入力]アクションは操作対象画面にも気を配りながら定義すると良いでしょう。

参考:
ウィンドウの位置を指定
https://automate.sct.co.jp/reference/11806/
ウィンドウサイズを指定する
https://automate.sct.co.jp/reference/11805/

■[Wait]アクションで"時間稼ぎ"をする
ユーザーの操作を真似る機能である以上、入力アクションは実行中に画面の描画状況を見ていません。実行速度自体も極めて速く、操作対象の有無にかかわらず"アクションとして動作完了"と判断し、処理を次のステップに流します。簡単に言えば、「キーボード/マウスが動くなら画面はなんでもOK」というわけです。そのため、導入環境の状態によっては「[入力]アクションが画面を置き去りにして先走る(アクション自体は正常実行されているためエラーは出ない)」という事象が起こります。

そんな状況を起こさないために、確実に処理が一時停止するという観点から[Wait - 時間]アクションとの組み合わせ定義を推奨しています。[Wait - 時間]アクションは、AutoMateの処理を一定時間待機させるアクションなので、画面の描画状況を間に合わせる時間稼ぎとして有効利用できます。

例えば2画面連続でのボタンの押下を自動化するとします。[入力]アクションによるマウスクリックの動作を2つ連ねた場合、画面1のボタンを押した直後に(画面描画が追いついていないのに)画面2のボタンを押す動きに差し掛かるので、ボタンの存在しない虚空をクリックする、という動きになる恐れがあります。そのため入力アクションが連続したり前後に画面変化を与える動きが定義されたりしている場合は、「画面1のボタン押下→1秒待機→画面2ボタン押下」のように、[入力]アクションを[Wait]アクションの秒数待機で挟み、表示を追いつかせる猶予を作りましょう。

[Wait]アクションは、時間待機以外にもウィンドウやファイルの存在、プロセス等様々な条件で処理を待機させることが出来ます。作成中の定義にあった条件を選択し、正しいタイミングで[入力]アクションが実行されるよう調整してください。

■"Microsoft IME"の設定に注意
キーストローク操作で日本語を入力する際、AutoMateは稼働環境のIMEを使用し入力します。MicrosoftのIMEをご使用の場合、Windows Updateの適用と共にMicrosoft IMEの設定が変わり、AutoMateの文字入力が意図せぬものになることがあります。そのため、Windows Updateを適用した後や運用中に突然文字入力が意図せぬものになったら"Microsoft IME"の設定変化を確認しましょう。
IMEの設定は、Windowsの設定>検索窓に"日本語"と入力し"日本語 IME設定"を選択>"全般"の"互換性"配下、「以前のバージョンのMicrosoft IMEを使う」の設定状況で確認できます。もし"オフ"になっていて入力が意図せぬものになっているなら、"オン"に切り替えてください。

最後に
[入力]アクションは自由度が高く失敗しづらい強力なアクションですが、定義状況や稼働環境によって意図せぬ挙動と付随するエラーの原因になりうる短所があります。しかしながら、"克服できる短所"ばかりです。本記事で紹介した"処理安定化のコツ"を実践し、より安定感があり強力な自動化を実現させましょう。