web-dev-qa-db-ja.com

Appleキーボードを使用したWindows7でのPrintScreen

Windows7でAppleキーボード(A1243、109キー))を使用してPrint Screen機能を識別しようとしています。提案されているようにオンスクリーンキーボードを使用したくありません(および この重複した質問 で受け入れられた回答として選択されました。

キーストロークだけで機能を実現したい。キーをマップする必要がある場合は、追加のソフトウェアなしでこれを実現したいと思います。私のオプションは何ですか?

次のキーストロークを試しましたが、システムで確実に機能しません:F13F14F15command+shift+4option+F13

3
2C-B

キーボードの再マッピング

ウィキペディアの引用:

スキャンコード(またはスキャンコード)は、ほとんどのコンピューターのキーボードが使用するデータです。どのキーが押されたかを報告するためにコンピューターに送信します。キーボードの各キーには、番号または一連の番号が割り当てられています。

Windows 2000以降、Scancode Mapレジストリ値を使用して、キーを別のキーに再マップしたり、キーを完全に無効にしたりできます。スキャンコードのマッピングは、次のレジストリキーに保存されます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

Keyboard Layoutキーに、Scancode Map値を追加する必要があります。この値はタイプREG_BINARY(リトルエンディアン形式)であり、次の表に指定されているデータ形式を持っています。

Start offset (in bytes) | Size (bytes) | Data
---------------------------------------------------------------------
                      0 |            4 | Header: Version Information
                      4 |            4 | Header: Flags
                      8 |            4 | Header: Number of Mappings
                     12 |            4 | Individual Mapping
                    ... |          ... | ...
           Last 4 bytes |            4 | Null Terminator (0x00000000)

1番目と2番目のDWORDSはヘッダー情報を格納し、スキャンコードマッパーの現在のバージョンではすべてゼロに設定する必要があります。 3番目のDWORDエントリは、ヌル終了マッピングを含む、後続のマッピングの総数のカウントを保持します。したがって、最小カウントは1になります(マッピングは指定されていません)。個々のマッピングはヘッダーの後に続きます。各マッピングの長さは1DWORDで、2つのWord長さフィールドに分割されます。各Wordフィールドには、マップするキーのスキャンコードが格納されます。

ソース: キーボードおよびマウスクラスドライバー

手動レジストリ編集

  1. 管理者としてコマンドプロンプトを開きます。

  2. 次のコマンドを入力または貼り付けて、を押します Enter

    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /t REG_BINARY /d 00000000000000000200000037e0640000000000 /f
    

    この場合、マッピングはF13キー(スキャンコード0x0064)の1つだけです。 PrintScreenキーである0xe037に再マップされます。

  3. ログオフするか、Windowsを再起動して、変更を適用します。

SharpKeysの使用

SharpKeysは、Windowsが1つのキーを他のキーに再マップできるようにするレジストリキーを管理するユーティリティです。アプリケーションには、一般的なキーボードキーのリストと、ほとんどのキーボードキーを自動的に認識するタイプキー機能が含まれています。

最新バージョンが機能するには、.NET Framework4.xが必要です。 .NET Framework 2.0/3.xで実行する必要がある場合は、 古いバージョン を取得できます。ポータブルバージョンもご利用いただけます。

  1. ダウンロードして実行 SharpKeys

  2. Addをクリックし、リストからFunction:F13(00_64)を選択します。そしてそれをSpecial:PrtSc(E0_37)にマップし、[〜#〜] ok [〜#〜 ]

  3. レジストリへの書き込みをクリックし、ログオフするか、Windowsを再起動して変更を適用します。

参考文献

7
and31415