AutoHotKey での再マッピング時の再帰

AutoHotKey での再マッピング時の再帰

私が持っているコードは次のとおりです:

[::
Send [
Input, Char, T2 L1
if Char = a
{
    Send â
    return
}
Send %Char%
return

[次に と入力するとa、正常に動作して が生成されます。しかし、次に とâ入力すると、文字は印刷されません。問題は、文字が再マップされる 2 行目 ( ) にあります。[p[Send [[

次のことを試しましたが、成功しませんでした。

  • Send `[

  • Send {[}

[再マップされていても印刷したい。

答え1

$ホットキーの前の修飾子として使用します$[::

としてAHK ドキュメント状態:

これは通常、スクリプトが Send コマンドを使用してホットキー自体を構成するキーを送信する場合にのみ必要です。そうしないと、スクリプトがホットキー自体をトリガーする可能性があります。$ プレフィックスの正確な動作は、オペレーティング システムによって異なります。

Windows NT4/2k/XP 以降の場合: $ プレフィックスは、このホットキーを実装するためにキーボード フックを使用するように強制します。これにより、副作用として Send コマンドがこのホットキーをトリガーできなくなります。$ プレフィックスは、このホットキーの定義の上のどこかに #UseHook を指定したのと同じです。

Windows 95/98/Me の場合: ホットキーはスレッドの実行中は無効になり、実行後に再度有効になります。副作用として、#MaxThreadsPerHotkey が 1 より大きい値に設定されている場合、そのようなホットキーに対して 1 に設定されているかのように動作します。

関連情報