ノートPCのビルトインキーボードは日本語がほとんど、でも外付けキーボードでUSレイアウトを使いたい。
目次
Outline
前提
キーボードは日本語と英語を追加済み。
キーボードのレイアウト設定を変更
windows + i
> 「時刻と言語」 > 「言語と地域」 > 「日本語」 > 「…」 > 「言語のオプション」
キーボード > 「キーボードレイアウトを変更する」 > [接続済みキーボードレイアウトを使用する]に変更し再起動
/// レジストリの位置がわからず・・・
これでUSBで差したキーボードレイアウトが有効になる。ただ、すべてのキーボードが対象なのでノートPCのビルトインの
キーボードもUSレイアウトになる。
対処法としてはビルトインキーボードのレイアウトを上書きで固定すればOK。
ノートPCのキーボードのデバイスパスを特定
Win + x - m
デバイスマネージャー devmgmt.msc
> キーボード > ノートPCのキーボードを選択しダブルクリック
詳細 > プルダウンでp[デバイスインスタンス パス]を選択 値をコピー(右クリック)
キーボードレイアウトのオーバーライドを無効化
グローバルなオーバライドを無効化。ビルドや環境によってあったりなかったりするので確認して消しておく。
¥HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥i8042prt¥Parameters
以下3つを削除
OverrideKeyboardSubtype
OverrideKeyboardType
LayerDriver KOR
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters" /v OverrideKeyboardSubtype /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters" /v OverrideKeyboardType /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters" /v "LayerDriver KOR" /f
built-in キーボードのレイアウト固定
内臓キーボードを日本語レイアウトで上書きする。
以下2つを追加
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\<デバイスパス>\Device Parameters]
"OverrideKeyboardType"=dword:00000007
"OverrideKeyboardSubtype"=dword:00000002
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\<デバイスパス>\Device Parameters" /v OverrideKeyboardType /t REG_DWORD /d 7
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\<デバイスパス>\Device Parameters" /v OverrideKeyboardSubType /t REG_DWORD /d 2