IME でかな入力モードがonになってるか検出する話
Brynhildr 1.0.4 Release - [ リモートデスクトップを開発するIchiGekiのブログ。 ]
起動時に「ImmDisableIME」でIMEをOFFにしてるんですが、その際にローマ字入力モードがカナ入力モードになってしまっているんでしょうか・・・。 ちなみに「ALT+カタカナひらがなローマ字」でIMEの入力モードの切替メッセージでますかね?(IMEが有効の時じゃないと出ないと思いますけど) カタカナでパスワードを指定するケースもありますので警告表示は難しいと思いますが、とりあえず状態を取得しないと始まらないのですが、「ImmGetConversionStatus」でカナ入力モード/ローマ字入力モードを取得できると思っていたのですがどうもできないでいますのでなんでですかね・・・。もし御存知の方がいらっしゃいましたら是非・・・。 |
とのことですが、
アプリケーションで、半角かな入力の状態を取得する時にImmGetConversionStatus を使うと色々な問題があるみたいです・ω・
[450_ローマ字入力とカナ入力の切換] - Mr.XRAY
現在の入力モードを ImmSetConversionStatus 関数で取得していますが,該当コントロールのカナ漢字入力が ON の時は取得できないようです.
ImmSetConversionStatus 関数は,Windows 8 では動作しません. |
じゃあ、どうすればいいか?
int kanaStatus = GetKeyState(VK_KANA) & 1; |
私はこれだけでいいと思う・ω・
ちなみに Windows 8は ImmSetConversionStatus / ImmGetConversionStatus のようなことをやりたい場合、
SetInputScope function (Windows) や TF_GetInputScope を使うようだ|ω・)チラリ
Comments