Introduction

ブログ内検索

  • このサイトの記事を検索 by Google

おすすめの一冊!

無料ブログはココログ

« WordPress のサーバ移行 | トップページ | KMmacro (その3) »

2013-04-18

KMmacro (その2)


KMmacro Tips 第二弾です。

  ⇒ 第一弾の記事はこちら


■ いつでもキャンセルできる sleep

delay 命令を使えばカンタンに sleep できます。

しかし、その間はマクロ実行をキャンセルできない、という問題があります。

たとえば、

SetBreakkey [Shift] ; ESCはうまく効かないことがあるので…
としておいても、delay 命令の実行中に Shift キーを押してもキャンセルできません。 そこで、短時間の delay 命令を繰り返し実行する関数を使います。
:SLEEP_WITH_YIELD if (< %sleepPeriod 1) goto :SLEEP_WITH_YIELD_END if (< %sleepPeriod 200) goto :SLEEP_WITH_YIELD_LAST dec %sleepPeriod 200 delay 200 goto :SLEEP_WITH_YIELD :SLEEP_WITH_YIELD_LAST delay %sleepPeriod :SLEEP_WITH_YIELD_END set %sleepPeriod 0 ; 念のためリセット return
メインルーチンではあらかじめ変数宣言が必要です。
DIM %sleepPeriod ; SLEEP_WITH_YIELD ルーチン用(非保持)
あとは、delay 命令の代わりにこの関数を call するだけ。
set %sleepPeriod 5000 call :SLEEP_WITH_YIELD
これで5秒間 sleep しますが、その間いつでもマクロの実行をキャンセルできます。 上記の関数定義は独立ファイルにしておいて、各マクロで include するのがオススメです。

« WordPress のサーバ移行 | トップページ | KMmacro (その3) »