Windowsで日本語キーボードを強制的にUS配列化し、再起動不要で切り替える方法
Windows で、外部キーボードの配列を強制的に英語←→日本語配列に切り替える方法です。
同じキーボードでも、接続する USB ポートでキーボードの配列を変える方法で、一度設定すれば、再起動しなくてもキーボート配列を変えられるようになります。
最近の Windows では、ノートPCに内蔵キーボードと異なる配列の外部キーボードを接続したり、また、配列が異なる複数キーボードを同時につないでも、今触っているキーボードの配列に自動で切り替える機能があるようなので、そういった複数キーボード個々の配列を変えることもできると思います。
Windows 8 で動作確認しましたが、Windows 7 / Vista とかでも動くかもしれません。
※この記事は、将来追記・更新する可能性があります。環境差とかで足らない部分があるかもしれないので。
キーボード情報の収集
今回の方法は、同じキーボードでも、接続したUSBポートで配列を切り替える方法ですので、まず、「このポートに接続した時だけ、このキーボードの配列を変えたい!」という USB ポートを決め、そこにキーボードを繋ぎます。
次に、デバイスマネージャから、接続したUSBキーボードの「プロパティ」→「詳細」タブ →「デバイス インスタンス パス」または「デバイス インスタンス ID」を開き、下図「1」「2」の文字を控えておきます。(右クリックでコピー可)
「1」は「VID_XXXX&PIDXXXX&MI_XX」
「2」は「8&10614~」(最後の\マーク以降)です
※環境により値は大きく異なります。
レジストリの編集
※レジストリ操作は潜在的な危険を伴うものです。実施する場合はPC環境を破壊する恐れがあるため、自己責任でお願いします。
次にレジストリを編集して、「今のUSBポートに」「今のキーボードが」接続されている場合だけ、キー配列を変えるよう設定します。
手順は以下。
- デスクトップで「Winキー」+R → 「regedit」でレジストリエディタを起動
- 「HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Enum\HID」を開く
- その中で、先に確認したキーボード情報「1」(VID_XXXX&PIDXXXX&MI_XX)のキーを開く
- その中の、先に確認したキーボード情報「2」(X&XXXXXX~)のキーを開く
- 「Device Parameters」キーをクリック
- 右側で右クリック→「新規」→「DWORD(32ビット値)」で、以下2つの値を作成
・KeyboardSubtypeOverride
・KeyboardTypeOverride - 以下の表から、変更先キーボード配列を選び、「6」の2つの値を設定
キーボード配列 | KeyboardTypeOverride | KeyboardSubtypeOverride |
日本語 106/109 | 7 | 2 |
日本語 101/104 | 7 | 0 |
英語 101/104 | 4 | 0 |
最後に再起動して、設定は完了です。(ここだけは再起動が必要)
キーボード配列の切り替え
一度設定すれば、以後のキー配列変更は簡単です。
- キーボードのUSBポートを差し替える
- キーボードで「@」を入力(US/JP配列関係なし)
分かりやすい様に、USBハブにラベルを貼っておいても良いかもしれません。
今回は、「特定のUSBポートに特定機種のキーボードが接続されている場合のみキー配列を変更する」設定なので、USBポートを変えればキー配列も元に戻ります。
後記:なんでこんな事しようと思ったのか
さて、どうしてこんな事をしようと思ったのか?ですが、実は、Android タブレットからのリモートデスクトップ系アプリでの接続時、Windows PC 側にJP配列キーボードがつながっていると、記号の多くがキートップと違う文字で入力されてしまう。という症状があり、その対策として、Windows側を強制的に英語キーボードにしよう、と思ったのがきっかけです。
Android からのリモートデスクトップ系アプリでの記号の話については、追って、別記事として公開する予定です。
なんというか、これでようやく Android のリモートデスクトップが使い物になる!という気もします。趣味の世界なら。という前提ですが。
それにしても、今回の件。できるものならネットワーク越しにキー配列を再起動無しで手軽に変えられる方法、という所までは詰めたい気がするので、機会があればもう少し調査したい所ではあります。
検索用キーワード:US101/104, JP101/104, JP106/109
参考資料
Sarerugamama says:
7年前
居間の大型テレビのHDMI端子に接続しているスティック型のPCですが、
・普段コントローラ代わりに使っている、USBの専用ドングルで接続するハンディタイプの無線キーボード
→ 日本語配列
・大量の文字を入力するときに使うBlueToothキーボード
→ 英語配列
の使い分けで悩んでいましたが、こちらのサイトの情報を参考にさせていただいてレジストリを変更し、問題解決しました。
Windows10 32ビット Home環境です。
ありがとうございました。