Windows7でAppleキーボード(A1243、109キー))を使用してPrint Screen
機能を識別しようとしています。提案されているようにオンスクリーンキーボードを使用したくありません(および この重複した質問 で受け入れられた回答として選択されました。
キーストロークだけで機能を実現したい。キーをマップする必要がある場合は、追加のソフトウェアなしでこれを実現したいと思います。私のオプションは何ですか?
次のキーストロークを試しましたが、システムで確実に機能しません:F13
、F14
、F15
、command+shift+4
、option+F13
。
ウィキペディアの引用:
スキャンコード(またはスキャンコード)は、ほとんどのコンピューターのキーボードが使用するデータです。どのキーが押されたかを報告するためにコンピューターに送信します。キーボードの各キーには、番号または一連の番号が割り当てられています。
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
フィールドには、マップするキーのスキャンコードが格納されます。ソース: キーボードおよびマウスクラスドライバー
管理者としてコマンドプロンプトを開きます。
次のコマンドを入力または貼り付けて、を押します Enter:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /t REG_BINARY /d 00000000000000000200000037e0640000000000 /f
この場合、マッピングはF13キー(スキャンコード0x0064
)の1つだけです。 PrintScreenキーである0xe037
に再マップされます。
ログオフするか、Windowsを再起動して、変更を適用します。
SharpKeysは、Windowsが1つのキーを他のキーに再マップできるようにするレジストリキーを管理するユーティリティです。アプリケーションには、一般的なキーボードキーのリストと、ほとんどのキーボードキーを自動的に認識するタイプキー機能が含まれています。
注最新バージョンが機能するには、.NET Framework4.xが必要です。 .NET Framework 2.0/3.xで実行する必要がある場合は、 古いバージョン を取得できます。ポータブルバージョンもご利用いただけます。
ダウンロードして実行 SharpKeys 。
Addをクリックし、リストからFunction:F13(00_64)を選択します。そしてそれをSpecial:PrtSc(E0_37)にマップし、[〜#〜] ok [〜#〜 ]。
レジストリへの書き込みをクリックし、ログオフするか、Windowsを再起動して変更を適用します。