2024年06月28日

【薙刀式】AHKによるIMEの状態取得とIME制御

IME_GetConvMode( )なるものがあって、
IMEの状態取得がAHKでできると教えてもらった。

ならいろんなことできるやろ、仕様調べるか、
と思ったら綾木さんの先駆にたどりついた。
さすがです。
https://qiita.com/kenichiro_ayaki/items/d55005df2787da725c6f


特に今の所アイデアはないんだけど、

・薙刀式で英数モードでもカナの時と同じ編集モードを使えるようにする
 (記号は半角にする)

・変換中のみVim的なアルファベット単打の操作ができるようにする
 (ただし「次の文字を打つと自動確定」が使えなくなるから一長一短。
 たとえばM単打で確定だとしても、毎回M打つのだるい)

なんかはすぐに思いつく。

他の関数をみると、
情報取得だけでなく、状態遷移も可能なので、
それを利用したマクロなんかも可能かもしれない。


あと実用上は、
縦書きと横書きを取得できたらなー。
エディタ依存だもんなー。
くやしいのう…

これらを利用した便利マクロ、思いついたらまた書くかも。



入力前、入力中未変換、変換後未確定の、
3状態でUndoの回数を変えて、
状態遷移ができるマクロとかはつくれそうだが、
実用に足るかは知らない。

それよりも薙刀式編集モードの「入力キャンセル」
(esc3回発行して、どの状態からでも入力前に戻る。
入力前状態でescを打っても何も起こらないのを利用)
が便利なのでいらんか…

IMEの状態を気にしながらそれを制御するのは、
「文章を書きたい」ことに対して邪魔で本質的ではない。
鉛筆で書くときに芯の減りを気にしながら書くのと同じだ。

となると、
「制御してる感覚を消す」方向に、
アイデアが出れば使えるかもしれない。
posted by おおおかとしひこ at 11:11| Comment(4) | TrackBack(0) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
IMEv2.ahk をご紹介いただきありがとうございます。

これはIMM(Input Metod Manager)という旧来のAPI呼び出しなせいか、アプリの種類によっては時々変な動作をするのです。
新しい TSF(Text Services Framework)を使えばよいのですが、TSF呼び出しは結構大変なので実現できていません。
Posted by Ken'ichiro Ayaki at 2024年06月29日 20:35
>Ken'ichiro Ayakiさん

いやー、お釈迦さまの手のひらの上で転がされてるかと思いました。
そしてそこには、
全く知らない問題があるのですねえ。
何がどう起きるのかわからないのは難しいな…
Posted by おおおかとしひこ at 2024年06月29日 22:56
なお、IMEv2.ahk の元になっている IME.ahk は、Autohotkey v1 のライブラリであり、Dvorakj や紅皿にも組み込まれています。
Posted by Ken'ichiro Ayaki at 2024年06月30日 01:03
>Ken'ichiro Ayakiさん

オンかオフかのやつは知ってました。
他もあったのかという感じです。

何かに使えないかなー…
Posted by おおおかとしひこ at 2024年06月30日 03:57
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック