メニューボタン
サポートチーム便り2024.03.13

こんな動きをする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 槻樹

あわせて読みたい記事

PAGE TOP