こんな動きをするACSのマクロは作れないでしょうか?
Question
ACSにて "停止するまで一定の間隔でF5キー(最新表示)を実行し続けるマクロ" を作成したくて試行錯誤しています。
F5キーを押す処理自体は簡単に作成できましたが、他の要件がなかなか実現できずに困っています。
どんな記述にすれば実現できるでしょうか・・・
Answer
「マクロの記録」機能を使えばF5キーを押すマクロを作成するのは簡単ですが、今回の場合ですと次の2点をクリアするのがポイントになります。
- 一定間隔で処理を実行する
- ユーザーが停止するまで処理を繰り返す
ここでは、以下のF5キーを押すマクロの例に、上記2点のポイントを含めて実現してみたいと思います。
(F5キーを押すマクロ例)
<HAScript name="2secF5key" description="" timeout="60000" pausetime="300" promptall="true" blockinput="true" author="TSUKI" creationdate="2024/02/07 17:18:34" supressclearevents="false" usevars="false" ignorepauseforenhancedtn="true" delayifnotenhancedtn="0" ignorepausetimeforenhancedtn="true" continueontimeout="false">
<screen name="画面1" entryscreen="true" exitscreen="true" transient="false">
<description >
<oia status="NOTINHIBITED" optional="false" invertmatch="false" />
</description>
<actions>
<input value="[pf5]" row="0" col="0" movecursor="true" xlatehostkeys="true" encrypted="false" />
</actions>
<nextscreens timeout="0" >
</nextscreens>
</screen>
</HAScript>
今回は仮に、2秒ごとにF5キーを押す、という挙動にしてみます。
一度F5キーを実行 → 次の処理を実行するまでに2秒遅延させる → 再度F5キーを実行、という動きになります。
アクション後に遅延を挿入するには pausetime にて時間を変更します。
デフォルトは300ミリ秒です。
2秒の場合は pausetime="2000" と指定します。
実行されるアクションは、"画面〇" (或いは "Screen〇")ごとに制御しています。
次に実行されるアクションがある時は nextscreen name にて次の画面名を指定します。
今回は"画面1"と同じ動きを繰り返すので nextscreen name="画面1" と指定します。
また、その画面が処理を終了する画面でない場合(非終了画面)は exitscreen="false" と指定します。
(exitscreen が "true" だと、その画面のアクション後にマクロが停止してしまいます)
その他、マクロの要件に依っては「timeout」や「ignorepausetimeforenhancedtn」の設定変更も必要かもしれません。
概ね設定は以上になります。以上の変更点を含めると以下のようなコードになります。
< HAScript name="2secF5key" description="" timeout="-1" pausetime="2000" promptall="true" blockinput="true" author="komukai873" creationdate="2024/02/06 11:41:15" supressclearevents="false" usevars="false" ignorepauseforenhancedtn="true" delayifnotenhancedtn="0" ignorepausetimeforenhancedtn="true" continueontimeout="false">
<screen name="画面1" entryscreen="true" exitscreen="false" transient="false">
<description >
<oia status="NOTINHIBITED" optional="false" invertmatch="false" />
</description>
<actions>
<input value="[pf5]" row="0" col="0" movecursor="true" xlatehostkeys="true" encrypted="false" />
</actions>
<nextscreens timeout="0" >
<nextscreen name="画面1" />
</nextscreens>
</screen>
</HAScript>
単純な動きのマクロであれば「マクロの記録」でも作成できますが、少し凝った動きをさせたい場合には「ホスト・アクセス・マクロ・エディター」というマクロを編集する機能もありますので、こちらも活用してみてください。
(「ホスト・アクセス・マクロ・エディター」は、5250セッションの画面にて「表示」→「マクロ管理プログラム」にチェックを付けると表示されます。)
by 槻樹