Windows8.1で「親指の友」が動かない件(実験と発見)
2018/06/18追記
本記事記載内容に一部誤りがありました。詳細はこちらを参照下さい。
前回の続きです。
実験アプリを作ってみました。以下で公開していますので、試してみたい方はどうぞ。ソースも同封しています(PDSとして扱って頂いて良いです)。
https://kiyoto-y.github.io/exe_w.htm
さて、これを起動して頂くと、…時代錯誤なビジュアルに面食らう方もいらっしゃるかもしれませんが…、モード名の書かれたボタンを押すことで、対応する設定をキーボードドライバに通知することができます。
また、「かな」設定にした状態でWindowsストアアプリを立ち上げてみて頂くと、ストアアプリ内でも親指シフト入力ができると思います。本来、こういうイレギュラーへの耐性がドライバレベルで親指シフトを実現する最大のメリットなんです。
これでひとまず、親指シフトの入力はできるようになりました。
そういえば「親指の友」ドライバですが、USB HIDキーボードにも使用できることが確認できました。下位がkbdhid.sysでもインタフェースは同じようです。
使用したいキーボードのドライバを「日本語 PS/2 106/109 キーボード (親指の友)」に更新したあと、再起動することで使用可能となります。
特に再起動の催促は出ませんが、再起動しないとキーボードレイアウトが変わりませんのでご注意下さい。
ところで、「かな」ボタンを押した状態で英字入力をしてみると、特に問題なく英字入力が行えます。
これは、親指シフトの実現方法がKB211等と異なり、キーボードレイアウト(各物理キーに対応する、論理キーコードや入力される文字の組合せを定義するファイル)をNICOLA専用にしており、単独打鍵時に配列の入れ替えが起こらない作りになっているためです。
SHIFTキーを押しながらだと、たまにゴミが入力されることがありますが(半濁音を入力しようとしている)、それ以外は特に実害が無さそうです。
勿論、英字入力時の各種機能は動作しなくなってしまいますが、別に親指シフトが使えない訳ではないので、当面の妥協案としてはこれでも良い塩梅かなという気がしました。
ちなみに、このあたりの動作ですが、実は富士通製のKB611ドライバも似たような仕組みになっています(その昔、富士通ドライバが出すウィンドウメッセージを見たときの記憶では…)。
私の手元にはWin8 + KB611を試せる環境が無いので、どなたか人柱になって頂ける方がいらっしゃいましたら、コメントか何かで結果を教えて頂けると嬉しいです。
ここまで試してみてひとつ気づきました。「同時打鍵判定処理の挙動が英字/かなで同じにさえなれば、入力モードを持っておく必要は無くね?」と…。
(続く)