半角カタカナ=19
全角英数 =24
ひらがな =25
全角カタカナ=27
というのは検出できたのですが、半角英数が検出できませんでした。
Microsoft IME
Microsoft Office IME 2007
Baidu IME
どれも試してみましたが、どれも検出できませんでした。
何が原因になっているのか教えてください。
下記のスクリプトで上記の結果が検出できました。
掲示板に載せるため、内容を色々と省略しています。
半角/全角/漢字ボタン等を押すことで入力モードを変更できます。
#uselib "imm32.dll" #func ImeStat "ImmGetConversionStatus" sptr,var,var #cfunc ImeContext "ImmGetContext" sptr himc=ImeContext(hwnd) *Key cls ImeStat himc,Inp,Mode mes "入力モード:" :pos 8*11,0 switch Inp case 16 :mes "半角英数" :swbreak case 19 :mes "半角カタカナ" :swbreak case 24 :mes "全角英数" :swbreak case 25 :mes "ひらがな" :swbreak case 27 :mes "全角カタカナ" :swbreak swend oncmd *Key,0x100 oncmd *Key,0x201