IMEがON中の操作で押したキー判定をしたいのですが
onkey内部ではほとんど VK_PROCESSKEY しか取得できないようで、
ImmGetVirtualKey を使ってみたのですが、うまくいきません。
以下のコードは、あくまでも簡単なイメージで
たとえば半角/全角キーが押されたかどうか、
変換候補を選択した場合のSpaceキーまたは上下キー、
変換決定時のEnterキー、
IMEはONだが変換候補を表示していない時のSpaceキー(全角空白キー)
等が押されたかどうかを判定したいと思っています。
HSPでIMEがON中の元キーを取得するには、他にどんな方法があって
どこまで判定できるのでしょうか?
#const VK_PROCESSKEY $000000E5 #const VK_ESCAPE $0000001B #const VK_OEM_AUTO $000000F3 #const VK_OEM_ENLW $000000F4 #const VK_DOWN $00000028 #const VK_UP $00000026 #const VK_SPACE $00000020 #const VK_RETURN $0000000D #uselib "imm32.dll" #cfunc ImmGetVirtualKey "ImmGetVirtualKey" int onkey gosub *OnIme stop *OnIme switch (wparam) case VK_PROCESSKEY mes "IME is ON.." vk_key = ImmGetVirtualKey(hwnd) switch (vk_key) case VK_OEM_AUTO case VK_OEM_ENLW mes "IME ON, VK_OEM" swbreak case VK_ESCAPE mes "IME ON, VK_ESCAPE" swbreak case VK_DOWN mes "IME ON, VK_DOWN" swbreak case VK_UP mes "IME ON, VK_UP" swbreak case VK_SPACE mes "IME ON, VK_SPACE" swbreak case VK_RETURN mes "IME ON, VK_RETURN" swbreak swend swend return