作成時の注意点

こんばんは。今日は雀躍配列をAutoHotkeyで実装しました。
suzume.ahk - Google ドライブ
これも継配列と同様にめんめんつさんが作成された配列です。


シンプルで実装しやすいですね。コードは昨日より見やすいと思います。

今日コードを書いていて気がついた点があります。配列作成時に重要な割に目立たない点なので書き留めておきます。仮にaを入力した場合bcを出力、xを入力した場合yzを出力したいとします。
例1

a::Send,{b}{c}
x::Send,{y}{z}
入力 出力
a bc
x yz

意図通り出力されます。今度はx入力でzaを出力したいとします。
例2

a::Send,{b}{c}
x::Send,{z}{a}
入力 私が意図していた出力 実際の出力
a bc bc
x za zbc

x入力でzaを出力したい場合例2のコードは機能しません。1行目のaの設定をずるずる引きずってしまっています。これを防ぐにはどうすればいいか迷っていました。現状私の出した結論は、IME.ahkを使ってIMEの状態を判定しオンの場合のみ機能させています。
例3

#include ime.ahk
#If IME_GET()
a::Send,{b}{c}
x::Send,{z}{a}
入力 私が意図していた出力 実際の出力
a bc bc
x za za

これなら意図通りx入力でza(Qwertyローマ字なら「ざ」)が出力されます。正直理屈はよく分かりませんがいいとします。IME.ahkの作者の方に感謝ですね。偶然見つけただけですが、誰かのお役に立てば幸いです。

追記

配列仕様について思いっきり勘違いをしていました。修正しましたので既にダウンロードされた方がいたら、お手数ですが再度やり直していただければ幸いです。まだミスがあるかもしれませんので見つけた方は遠慮なく指摘してください。