2020年4月アーカイブ

タイトルのとおりの記事です。

本体もUS配列、外付け(USB/Bluetooth)もUS配列、みたいにそろっている場合はシンプルに、

設定→時刻と言語→言語→(優先する言語)日本語→オプション→ハードウェアキーボード→レイアウトを変更する→「英語キーボード(101/102キー)」

を選択して再起動すれば、何の疑問もなく完了。

そうではなく、ラップトップ内蔵のキーボードは日本語JP配列、外付けキーボードが英語US配列、と共存させたい場合は、↑の設定だけではうまくいかない。

手段としては以下の2通りが考えられます。

プランA:システム標準の配列を日本語JPとし、任意の外付け英語キーボードを英語US配列に設定する。

プランB:システム標準の配列を英語USとし、ラップトップ内蔵の日本語キーボードだけを日本語JP配列に設定する。

プランAが自然に見えますが、外付けキーボードの「デバイスインスタンスパス」に対して個別に設定するので、接続するUSBポートを変えるときは、設定を追加する必要があります。使うUSBポートが決まっている場合はプランAでOKです。

プランBは、デバイスインスタンスパスが変わらない内蔵キーボードの配列を日本語に設定します。外付けしたいUSキーボードが複数あるとか(あるのかそんなこと)、しばしば違うポートに挿す必要がある場合はこちらを選択します。(私はこっちです。)

いずれのプランも、レジストリエディタでレジストリを書き換えます。失敗するとシステム全体がおかしくなるリスクがありますので、レジストリって何?って方は、周りの詳しい方にお願いすることをお勧めします。

プランAの手順

手順A-1. システム標準の配列を「日本語キーボード(106キー)」に設定。方法は冒頭に紹介のとおり。

手順A-2. 以下のレジストリキーに、DWORD(32ビット)を追加。設定したらシステムを再起動。

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\[デバイスインスタンスパス]\Device Parameters

(対象のデバイスインスタンスパスのキーボードを英語US配列にする)

OverrideKeyboardType:4(0x00000004)

OverrideKeyboardSubtype:0(0x00000000)

デバイスインスタンスパスは、

デバイスマネージャー→外付け英語キーボードのデバイス(「HIDキーボードデバイス」のどれかのはず)のプロパティ→詳細→デバイスインスタンスパス

から確認しておきます。

プランBの手順

手順B-1. システム標準の配列を「英語キーボード(101/102キー)」に設定。方法は冒頭に紹介のとおり。

手順B-2. 以下のレジストリキーに、DWORD(32ビット)を追加。設定したらシステムを再起動。

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\[デバイスインスタンスパス]\Device Parameters

(対象のデバイスインスタンスパスのキーボードを日本語JP配列にする)

OverrideKeyboardType:7(0x00000007)

OverrideKeyboardSubtype:2(0x00000002)

デバイスインスタンスパスは、

デバイスマネージャー→内蔵日本語キーボードのデバイス(多くの場合は「標準PS/2キーボード」)のプロパティ→詳細→デバイスインスタンスパス

から確認しておきます。

プランA・B共通の補足(手順2. まででうまくいく場合は不要)以下のレジストリキーを確認。

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

の中に、

OverrideKeyboardType

OverrideKeyboardSubtype

がないことを確認。あったら削除。そしてシステム再起動。

このキーは、手順1. で設定するシステム標準の配列に関する情報が保管されているのですが、ここに上記DWORDがあるとこれが最優先になり、デバイスインスタンスパスごとに設定したものが無視されてしまうようです。たぶん。

Windows10のアップデートや微妙な仕様変更により、うまくいかなくなることがあるかもしれませんが、とりあえず現状これでOK。

どなたかのお役に立てたなら幸いです。

アーカイブ