1 件の投稿を表示中 (合計 1 個)
  • 作成者
    投稿
  • #9176
    kshi
    参加者

    マクロが無限ループに陥った場合に脱出できるようにしてほしい、という要望がときどき出ていたかと思います。キー入力を検査する機能(これも別途、要望が出ていたかと……)を追加すれば、Escなど何かキーを押せば脱出するようなコードを書くことができます。

    ※ SeraphyScriptDialogを利用する例

    var dt
    var ssd = new ActiveXObject(“SeraphyScriptDialog”);

    alert(“これから無限ループします。” +
    “ステータスバーに現在時刻を表示します。” +
    “脱出するには ESC を1秒以上押してください。”
    );

    while (true) {
    if (ssd.GetASyncKeyState(0x1B)) { break; }
    dt = new Date();
    status = dt.toLocaleString();
    ssd.DoEvents();
    }

    status = “脱出しました。”;

    ループ中に他のアプリに処理を明け渡すDoEvents()のようなメソッドも必要ですね。

    EmEditorにこの機能が搭載されれば、いわゆるモード型マクロを作成することもでき、マクロで実現できる機能の幅が広がるかと思います。

    ご検討いただければ幸いです。

1 件の投稿を表示中 (合計 1 個)
  • このトピックに返信するにはログインしてください。