マクロでキー入力を検査する&無限ループ対策
マクロが無限ループに陥った場合に脱出できるようにしてほしい、という要望がときどき出ていたかと思います。キー入力を検査する機能(これも別途、要望が出ていたかと……)を追加すれば、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