web-dev-qa-db-ja.com

HKEY_CURRENT_USER \ Keyboard Layout-> Scancode Mapを使用して、Windowsのキーボードレイアウトを「再定義」できますか?

完全な管理者権限を持っているコンピューターで、次のレジストリエントリを使用してキーボードレイアウトを変更しました

REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] 
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,01,00,3a,00,3a,00,01,00,1d,e0,5c,e0,00,00,00,00

これは正常に機能し、期待どおりでした。

さて、HKLMエントリを変更するために必要な特権を持っていない別のコンピューターで、HKCUで同じことを試しました。

REGEDIT4 
[HKEY_CURRENT_USER\Keyboard Layout] 
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,01,00,3a,00,3a,00,01,00,1d,e0,5c,e0,00,00,00,00

残念ながら、このコンピューターでは効果がありません(私が気付いたことがあります)。コンピューターを再起動しました。レジストリキーはregeditを介して登録されており、regeditでそれらを表示できます。

そうすることができますHKEY_CURRENT_USER\Keyboard Layout -> "Scancode Map"キーボードレイアウトを再定義するために使用します。特に、HKLMを変更するために必要な権限がない場合に使用します。

3

以下はアーカイブされた論文ですが、Win7でも有効だと思います: Windows用のスキャンコードマッパー

次の欠点が認識されます。

  • マップがレジストリに保存されたら、マップをアクティブ化するためにシステムを再起動する必要があります。

  • レジストリに保存されているマッピングはシステムレベルで機能し、すべてのユーザーに適用されます。 これらのマッピングは、現在のユーザーに応じて異なる動作をするように設定することはできません。

  • 現在の実装では、マッピングがシステムに接続されているすべてのキーボードに常に適用されるように、マップの機能が制限されています。 現在、キーボードごとにマップを作成することはできません。

5
Karan