忍者ブログ
●URL●



ウイルス対策ソフト満足度調査2013総合満足度第1位
ウイルス対策ソフト満足度調査総合満足度【第1位】






♪楽天市場のお気に入り♪
 
 
 
 
 
 
 

:: [PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。





 キーボードが壊れました。代替で英語キーボードを繋げてみたら、日本語キーボードとして認識している様で、キー入力が正しく出来ない。インターネットで調べたら、USBキーボードのレジストリ情報にキーボードタイプを上書き(Override)する事で正しいキー入力が出来る様だったのでやってみた。


今回覚えた事

・HID :: Human Interface Device
・VID :: ベンダー(vender)ID、メーカ番号
・PID :: プロダクト(product)ID、製品番号
・KeyboardType
・KeyboardSubtype
・keyboard.inf


キーボード情報(デバイスインスタンスパス)の確認




方法は2通り。どちらも同内容。

方法1::
コントロールパネル → デバイスとプリンター → デバイス → 対象のキーボードのプロパティ → 【タブ】ハードウェア → プロパティ → 【タブ】詳細 → デバイスインスタンスパス

方法2::
コントロールパネル → キーボード → 【タブ】ハードウェア → 対象のキーボードを選択 → プロパティ → 【タブ】詳細 → デバイスインスタンスパス


レジストリにキーボードタイプを上書き




レジストリエディタで【 HKEY_LOCALMACHINE\SYSTEM\CurrentControlSet\Enum\HID 】へ。さっき調べた【デバイスインスタンス】の場所を探す。【Device Parameters】に英語キーボードなので下記の値を入力

追加記載(DWORD値)
・KeyboardTypeOverride : 4
・KeyboardSubtypeOverride : 0


その他のキーボード情報を見つけたので記載しておく。
キーボードタイプ( KeyboardType )
キーボード Type SubType
英語 101 4 0
日本語 101 7 0
106 2
AX 1
韓国語 101type1 8 3
103 6


パソコンを再起動してキーボードの入力確認してみる。上手く動いた!!。

けど・・・

USBの差込口を変えると、やっぱり設定を再度行う様子で結局日本語キーボードの設定になってしまった。

これだと差し込み口変える度にキーボードの…調べて~レジストリ調べて…って手間が掛かってしょうがないので何か良い方法が無いかなぁとネットで調べてみたら、"keyboard.inf"に自分で設定を書き込んでキーボードのモデルを特定させれば良いって言う情報を見つけたので参考にさせて頂きました。


キーボードレイアウトの指定、keyboard.infへ設定追加


【感謝】参考ページ【感謝】
タイトル ::Windows7でのキーボードレイアウトの指定 | 相方が携帯紛失

恐らくこのまま読み進んでも何がなんだか分からないと思いますので、詳しく知りたい方は上記の方のページをご確認下さい。

===== 以下自分用の纏め =====

キーボードレイアウトの指定::01::事前準備するファイル


C:\Windows\inf\keyboard.inf → 後で書き換える
C:\Windows\system32\kbdclass.sys
C:\Windows\system32\kbdhid.sys
C:\Windows\system32\drivers\i8042prt.sys

新規に作ったフォルダに纏めておく。


キーボードレイアウトの指定::02::キーボードの情報確認


製品名 :: Kensington 64331A
PnP ID :: HID\VID_1267&PID_0103&MI_00


キーボードレイアウトの指定::03::"keyboard.inf"へ設定追加

以下追加した内容。書き換えや削除は無し。

[Manufacturer]セクション
%KENSINGTON%=KENSINGTON_KBD,NTx86


[KENSINGTON_KBD.NTx86]
%HID\VID_1267&PID_0103&MI_00.DeviceDesc%=HID_101_Keyboard_Inst,, HID\VID_1267&PID_0103&MI_00


; ==============================================
; English 101 Keyboard (USB)
; ==============================================
[HID_101_Keyboard_Inst.NT]
Copyfiles = HID_Keyboard_Inst.CopyFiles.NT
;Copyfiles = 101_TYPE_LayerDriverFiles
AddReg = HID_101_Keyboard_Inst.AddReg

[HID_101_Keyboard_Inst.AddReg]

[HID_101_Keyboard_Inst.NT.HW]
AddReg = HID_101_Keyboard_Inst.AddReg.NT.HW
AddReg = HID_Keyboard_Inst.AddReg.NT

[HID_101_Keyboard_Inst.AddReg.NT.HW]
HKR,,"KeyboardTypeOverride",0x00010001,4
HKR,,"KeyboardSubtypeOverride",0x00010001,0


[HID_101_Keyboard_Inst.NT.Services]
AddService = kbdhid,%SPSVCINST_ASSOCSERVICE%,KbdHid_Service_Inst,KbdHid_EventLog_Inst ; Port Driver
AddService = kbdclass,, kbdclass_Service_Inst, kbdclass_EventLog_Inst ; Class Driver


[Strings]セクション、; Manufacturers
KENSINGTON = "Kensington"


[Strings]セクション、; HID device IDs
HID\VID_1267&PID_0103&MI_00.DeviceDesc = "Kensington 64331A 101 USB Keybord"


情報を追加したら保存

キーボードレイアウトの指定::04::ドライバの更新



[コントロールパネル] → [デバイスマネージャー] → [キーボード] → [対象のキーボードの所で右クリック] → [ドライバーソフトウェアの更新] → [コンピューターを参照してドライバーソフトウェアを検索します] → [コンピューター上のデバイスドライバーの一覧から検索します] → [互換性のあるハードウェアを表示]にチェック → 対象のキーボードのドライバが見つかればそれを検索。【分岐1】[次へ] → 問題なければこれでドライバーの更新が完了。

【分岐1】から
ドライバが見つからなければ、[ディスク使用] → [製造元のファイルのコピー元]に対象のキーボードのドライバー(keybord.inf)保管先を指定して[OK] → 対象のキーボードのドライバーを選択。[次へ] → 問題なければこれでドライバーの更新が完了。



試してみたらドライバ更新上手くいきました。

けど・・・

USBの新しいポートへ差し込んだのですが、結局101英語キーボードとして認識してくれません。しかしながら、この方法であればドライバーの更新だけで済むので当初より手間が減り良かったです。


PR





PR

Copyright © 202122 忍者ブログ [PR]