IME.ahkも悪くはないのですが、マイクロソフトの気分次第でどう転ぶかわかりません。一応UWSCでのコントロール手法も考えておきます。薙刀式に従ってFG同時押しによりIMEオフ、HJ同時押しでIMEオンとしたいのですがうまくいきませんでした。
代わりにHJ同時押しで強制的にIMEオン状態を維持し、FG同時押しでコントロール可能な状態へ解除しています。FV同時押しでIMEオフ状態を強制します。
もし試される方がいればキーボード入力を強引に乗っ取りますのでWindowsのサインインをPINに変更されることを強く推奨します。最悪、画面ロックのたびに再起動する必要がありますので注意してください。起動から100秒後にメイン側は終了しますが、その後もIME状態の強制的な維持は続きます。
askpc.panasonic.co.jp
続きます
jigendaddy.hatenablog.com
ホットキー1(メイン)
SETHOTKEY(VK_F, ,"F") SETHOTKEY(VK_G, ,"G") PUBLIC F_FL=0 PUBLIC G_FL=0 SLEEP(100) PROCEDURE F F_FL=1 IF G_FL>0 THEN F_FL=0 G_FL=0 SCKEY(0, VK_ALT, VK_F2) EXITEXIT ENDIF FEND PROCEDURE G G_FL=1 IF F_FL>0 THEN F_FL=0 G_FL=0 SCKEY(0, VK_ALT, VK_F2) EXITEXIT ENDIF FEND
ホットキー2(別プロセスで実行)
WHILE 1 IF !GETKEYSTATE(TGL_IME) THEN KBD(VK_KANJI, CLICK) WEND
ホットキー3(別プロセスで実行)
WHILE 1 IF GETKEYSTATE(TGL_IME) THEN KBD(VK_KANJI, CLICK) WEND
AHK
~h & j:: ~j & h:: IfWinExist, ahk_exe UWSC.exe { Send,{Backspace} Send,!{F2} Send,^{w} Sleep,500 Send,{2} Sleep,1000 WinActivate Send,^{w} Sleep,500 Send,{1} } Return ~f & v:: ~v & f:: IfWinExist, ahk_exe UWSC.exe { Send,{Backspace} WinActivate Sleep,500 Send,^{w} Sleep,500 Send,{3} }