Surface Pro 4 / 3 ビジネス活用日記

Surface Pro 4 / Surface 3 の意外と知らない活用法を発信します

Surface の外付けキーボードやリモート接続時のキーボードは、なぜ英語配列で認識されるのか

f:id:iwam:20150408153000p:plain

 

Surface の 外付けキーボードやリモート デスクトップ接続時に英語配列になってしまうのはなぜか

 

キーボードには、PS/2 接続のキーボードやノート PC のキーボードのように、デバイス固有のドライバーで動作する場合と、USB / Bluetooth キーボードのように、汎用ドライバーで動作する場合があります。

 

前者の場合は、専用のキーボード ドライバーをインストールすれば日本語配列で認識されます。

後者の場合は、レジストリに記録されているキーボード配列の情報を参照して認識されます。通常のPC では、これが日本語配列に設定された状態が初期設定になっています。

 

Surface は、上記のいずれにも該当しません。このため、Surface では、 USB / Bluetooth 接続の外付けキーボードからの入力や、リモート デスクトップ接続時のキー入力などは、レジストリ上の設定をそのまま反映し、英語配列で認識されます。

 

(ただし、タイプ カバーだけは別で、固有のドライバーを使用せず、かつ、レジストリが英語配列に設定された状態で、日本語版のタイプ カバーを日本語配列で正しく認識します。)

 

この問題を回避するためには、下記の KB 文書のとおり、Surface 側で以下のいずれかを実施する必要があります。

 

方法1: PS/2 キーボードのドライバーを上書きして強制的に日本語配列で認識させる

方法2: レジストリを日本語配列の設定に書き換える

 

<参考>

Windows 8 でキーボードが英語配列キーボードとして認識される

https://support.microsoft.com/en-us/kb/416037/ja

 

このうち、方法1は外付けキーボードに限定した対処法となり、リモート デスクトップの場合は効果がありません。方法2(レジストリの修正)の実施が必要です。

また、外付けキーボードについても、ドライバーを上書きしたキーボード以外のものを接続すると、英語配列になってしまいますので、方法 2 のほうが最終的に手間が少なくて済むかもしれません。

 

方法 2 : レジストリで日本語配列に設定する手順

  

(個々の値を変更する方法)

[HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters] 配下のレジストリ エントリを以下のように設定します。

 

エントリ                                           種類                      値

LayerDriver JPN                                REG_SZ                kbd106.dll

OverrideKeyboardIdentifier               REG_SZ                PCAT_106KEY

OverrideKeyboardSubtype                 DWORD               2

OverrideKeyboardType                      DWORD               7

 

(一括で設定する方法)

下記の -- の間の部分をテキスト エディターにコピーし、 ".reg" という拡張子で保存して実行後、再起動すると設定が反映されます。

-------------------------

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]

 

"LayerDriver JPN"="kbd106.dll"

"OverrideKeyboardIdentifier"="PCAT_106KEY"

"OverrideKeyboardSubtype"=dword:00000002

"OverrideKeyboardType"=dword:00000007

-------------------------

 

なお、この部分の設定は、 Windows 10 では GUI 上からできるようになっているようですね。( Build 10049 でテスト)

 

f:id:iwam:20150413130725p:plain