WindowsでJISキーボードとUSキーボードを併用する

この記事はMisoca+弥生+ALTOA Advent Calendar 2018 13日目の記事です。

こんにちは、弥生の小倉です。

今回はWindowsユーザーの永遠の悩み、JISキーボードとUSキーボードの併用方法を書いていこうと思います。 箸休め感覚で読んでいただけたらと思います。

IMEで日本語英語入力を切り替える方法もありますが、今回はレジストリを書き換える方法をご紹介します。

なぜ併用して使うのか

私は普段、USキーボードを使っています。普段使ってる方ならこんなこと言われた経験ありますよね。

「うわ、お前のキーボード使いにくすぎ」

今後、何回言われるでしょうか。もうキーボードを捨てるしかありません。 流石にもったいないので用意しますよね、JISキーボード。

しかし、JISとUSを併用した場合、OSで設定しているキーボードレイアウトではない方は キーの印字と入力がちぐはぐになってしまいます。

f:id:ym_AdventC:20181212164451p:plain
「@」と入力したつもりが「[」に...

設定手順

特定のキーボードをUS配列として扱う手順を紹介します。

OSデフォルトの「キーボード レイアウト」は日本語(JIS配列)となっています。

f:id:ym_AdventC:20181212165003p:plain
「設定」→「時刻と言語」→「地域と言語」→「言語」のキーボードレイアウトは日本語

①デバイスマネージャーからUS配列にしたいキーボードを見つける

デバイスマネージャーからUS配列で使用したいキーボードを見つける必要があります。最後に接続した日が確認できるのでデバイスを抜き差しして見つけ出します。

f:id:ym_AdventC:20181212163647p:plain
4番目の「HID キーボード デバイス」が対象のキーボードと判明しました

②「デバイス インスタンス パス」を確認

プロパティから「デバイス インスタンス パス」を選択し確認します。

f:id:ym_AdventC:20181212163837p:plain

「HID\VID_0853&PID_0100\7&1E1F0A2E&0&0000」であることを確認しました。

③レジストリ値の追加

レジストリエディターから、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ {確認したデバイスインスタンスパス} \Device Parameters を開きます。

f:id:ym_AdventC:20181212164015p:plain

DWORD (32 ビット) 値で、次の値を追加します。

値の名前 値のデータ
KeyboardSubtypeOverride 0
KeyboardTypeOverride 4

f:id:ym_AdventC:20181212164103p:plain

この値の組み合わせで他の配列なども指定することができます。

キーボード Type SubType
英語 101/104 4 0
日本語 101/104 7 0
日本語 AX 7 1
日本語 106/109 7 2
韓国語 101type1 8 3
韓国語 103 8 6

設定完了

以上で完了です。レジストリの値はサインイン時です。一度サインアウトして動作を確認しましょう。

f:id:ym_AdventC:20181212164413p:plain

USキーボードで@が入力できました。もちろんその他のキーボードはJIS配列で使用できます。

しかし、注意しなければいけないことがあります。「デバイス インスタンス パス」の後半部分(2つ目の「/」より後ろ)は、接続したUSBポートによって変わってしまいます。 別ポートに接続した場合、またレジストリを追加しなければいけません。

解決法として、汎用キーボードドライバの設定ファイル(keyboard.inf)を書き換えてレジストリに自動で追加する方法があったのですが、 Windows8以降、デジタル署名の無いINFファイルはインストールできなくなったみたいです。

次回予告

次回は@ta_kumaさんによる「トータル24時間で最初のユーザーを獲得する話」です。 IQ高そうです!ご期待下さい!