software / キーカスタマイズソフト 2にて出された、AutoHotkeyのお題に回答してみる。なるほど、台湾キーボードの 左 Alt を 無変換 に変更したいようだ。無変換 を使用するのは日本語を入力するときだけだろう。これより、日本語入力中に限り 左 Alt を 無変換 に変更するスクリプトを書くことにする。日本語入力中かどうかを判定するには、お馴染みの IME.ahk を使用するだけでよい。以上より、つぎのようなAutoHotkey_L 用スクリプトを作成した。
;;; software / キーカスタマイズソフト 2 ;;; http://hibari.2ch.net/test/read.cgi/software/1239109333/330 ;;; > AutoHotkeyを、台湾キーボードで使ってます。 ;;; > (中略) ;;; > んで逆行するようだけど、左アルトを、無変換キーにしたいです。 ;;; AutoHotkey_L <http://www.autohotkey.net/~Lexikos/AutoHotkey_L/> ;;; 日本語入力ならば ;;; LALT を 無変換に変更する #If ( IME_GET() ) LAlt:: send,{vk1Dsc07B} return ;;; IME.ahk ;;; http://www6.atwiki.jp/eamat/pub/MyScript/IME20091203.zip IME_GET(WinTitle="A") { VarSetCapacity(stGTI, 48, 0) NumPut(48, stGTI, 0, "UInt") ; DWORD cbSize; hwndFocus := DllCall("GetGUIThreadInfo", Uint,0, Uint,&stGTI) ? NumGet(stGTI,12,"UInt") : WinExist(WinTitle) return DllCall("SendMessageW" , UInt, DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hwndFocus) , UInt, 0x0283 ;Message : WM_IME_CONTROL , Int, 0x0005 ;wParam : IMC_GETOPENSTATUS , Int, 0) ;lParam : 0 }