Windwos7 Professionalを、英語版のWindwos7 Enterpriseにアップデートしたようで、その際にキーボードの配列がおかしくなったので見て欲しいと依頼がありました。
で、見てみると、一部のキーボードのキーに書いてある文字と、押して表示される文字が違うという現象が起きていました。特に記号関係のキーはめちゃくちゃ。
これは、使用しているキーボードが106配列(日本語)なのに、101配列(英語)として設定されているためです。
というわけで、解決策。
答えはマイクロソフトのオフィシャルページにあります。
で、今回はレジストリを編集して対応できました。
以下、その方法ですが、レジストリは下手にいじると、致命的な問題が発生して、Windwosが起動しなくなってしまう場合もあります。とはいえ、必要な項目だけを間違えずに修正すればよく、それほど難しいものではないので、必要以上にビビる必要はないかと。
まずは、レジストリエディタを開きます。
コマンドプロンプトで、regedit と入力します。
コマンドプロンプトは、Windows7なら、スタート→すべてのプログラム→アクセサリ に大抵入っています。
Windows8なら、すべてのアプリで、Windowsシステム ツールにあります。
レジストリエディタが開いたら、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
を開きます。
HKEY_LOCAL_MACHINE をクリックすればツリーが開くので、SYSTEMをクリック。そしたら、今度はCurrentControlSetをクリック。という感じで順に開いていきます。
i8042prtを開くと、Parametersがあって、そこをクリックすると目的のレジストリが表示されます。(この画面はWindwos8の場合です。ちなみに、LayerDriver KORというのは、韓国語用のレジストリキーなので、関係ありません。(削除した方がいい場合もあるようです)
修正が必要なのは
LayerDriver JPN
OverrideKeyboardIdentifier
OverrideKeyboardSubtype
OverrideKeyboardType
の、4箇所。
一つづつ、修正します。
修正するレジストリの名前のうえで、マウスの右ボタンをクリックし、修正(M)をクリックします。
LayerDriver JPN がおそらく、kbd101.dllになっているので、kbd106.dll に修正。
OverrideKeyboardIdentifier はPCAT_101KEYになっているので、PCAT_106KEYに修正。
OverrideKeyboardSubtype は、2、に修正します。
OverrideKeyboardType は7ですが、おそらく修正はいらないと思います。
修正が終わったら、ファイル(F)→レジストリエディタの終了(X)をクリック。
あとはWindowsを再起動し、キーボードが正しく操作できるか確認してみてください。