公式マニュアル

インスタントマクロ (Instant Macro)

インスタントマクロは、キーボードからの入力文字列や制御キー操作をその場でリアルタイムに記録し、登録した拡張キーからワンキーで高速再生する機能です。...

インスタントマクロは、キーボードからの入力文字列や制御キー操作をその場でリアルタイムに記録し、登録した拡張キーからワンキーで高速再生する機能です。


基本的な操作方法

マクロの記録と再生は、キー拡張マッピングに割り当てた以下の2つの特殊コマンド(デフォルトマッピングでは L1の . が再生、SSの . が記録トグル)を通じて行います。

  1. {Macro} (マクロ記録の開始 / 停止トグル):
    • マクロが停止している状態(idle)で実行すると、以前の記録メモリを消去して新しく記録を開始します。
    • 記録中は、キャレットインジケーターの横にマクロ記録中であることを示す文字(デフォルト "M"、カラー "FF00FF")が合成表示されます。
    • 記録中にもう一度 {Macro} を実行すると、それまでの入力を保存して記録を完了(コミット)します。インジケーター表示は通常に戻ります。
  2. {ExecuteMacro} (マクロの再生):
    • 記録されたマクロをその場で一括して再生実行します。

正確な記録と誤動作防止技術

打鍵タイミングのズレや修飾キーの競合を防ぐため、以下のような高度な制御ロジックを搭載しています。

1. OnChar フックベースの文字記録

物理的な打鍵キー(スキャンコード等)をそのまま記録するのではなく、Windows 上で実際に出力された「文字」を OnChar APIフックで正確にバッファします。これにより、IMEのオン/オフや修飾キーの適用状態に左右されず、見かけ通りのテキストを記録できます。

2. チャタリング・重複入力の防止

チャタリングや同一キーの二重フックによる重複記録をガードするため、150ms以内の同一キーの連続入力を自動的に無視します。

3. 再生時のキー送信保護と Text モード

1文字のテキストデータを送信する際、SendEvent("{Text}" key) を使用して送信します。これにより、再生中のIME状態や修飾キーのすり抜けによる誤入力を防止します。

4. マクロ再生中の競合ブロック

  • 物理 Space キーの退避: 再生中、物理的に Space キー(Space Shift)が押し下げられている場合は、競合を避けるために一時的に論理的な Space Up を送信して安全に文字を流し込み、再生が完了した瞬間に自動的に元の Space Down 状態へ復帰させます。
  • フックの一時停止: 再生処理の実行中は、修飾キーロック用のフック(LockInputHook)などを一時的に停止(Stop/Start)し、マクロ自身の送信キーがフックされて誤作動を起こすのを防ぎます。
  • 二重出力ガード: 送信したマクロ内のキーが再度フックされて「マクロの中にマクロが記録される」ループを防ぐため、送信中ガードフラグ(IsSendingKey)と、キー送信間クールダウン(LastSendTime)による非同期遅延ガードを適用しています。