紅皿のサポートブログ

キーボード配列エミュレーションソフトウェア「紅皿」の不具合や要望はこちらに

「以前のバージョンのMicrosoft IMEを使う」スイッチの判定方法

「以前のバージョンのMicrosoft IMEを使う」スイッチがオンかオフかで、配列定義におけるユニコード直接出力(=シングルコーテーションで括った全角文字列)の出力状態が変わります。

 

 「以前のバージョンのMicrosoft IMEを使う」スイッチがオンのとき、Microsoft IMEユニコード直接出力すると、未確定文字として変換中文字列の最後尾に追加されます。

 

 「以前のバージョンのMicrosoft IMEを使う」スイッチがオフのとき、Microsoft IMEユニコード直接出力すると、確定文字となります。変換中文字列は、その分だけ後ろにずれます。

 

 なお、Google日本語入力Atokの両方とも、ユニコード直接出力すると、未確定文字として変換中文字列の最後尾に追加されます。つまり、「以前のバージョンのMicrosoft IMEを使う」スイッチがオフのときのMicrosoft IMEだけ、他のIMEとは動作が異なります。そこで、プログラム(配列エミュレータ)から、「以前のバージョンのMicrosoft IMEを使う」スイッチの状態をとれないかと見てみました。

 

 HKLM\Software\Microsoft\input\Locales の InputLocale が 0x002d0411 ならば、「以前のバージョンのMicrosoft IMEを使う」スイッチがオフ。InputLocale が 0x00230411 ならばオフのようです。なお、HKLM\Software\Wow6432node\Microsoft\input\Locales にも、同じキーが掛かれています。