前回、JNA を使用して Stage の hWnd を取得しました。
今回は、JNA を使用して Windows IME を制御してみたいと思います。
今回使用するのは Msctf.dll です。
SetInputScope 関数に hWnd と InputScope(int) を渡すことで IME を制御することが出来ます。InputScope の具体的な値は InputScope Enumeration を参照してください。
以下のサンプルコードではひらがなフィールドとカタカナフィールドを配置しました。ひらがなフィールドがフォーカスを得ると、IME がひらがなに切り替わります。カタカナフィールドがフォーカスを得ると、IMEは全角カタカナに切り替わります。SetInputScope に渡している 44、46 はそれぞれ「ひらがな」「カタカナ」を示しています。実際には定数化するのが良いですね。