今日、私はいくつかのキーボードメディアキーをより便利な機能に再マッピングしようとしましたが、失敗しました。
キーコード(またはスキャンコード)は、基になるキーコードをキャッチするために私が使用していたほとんどのプログラムで認識されませんでした。
たとえば、他の点では優れたツール SharpKeys には、押したばかりのキーを通知するキャッチモードがあります。間違ったキーコードが表示されることに気付くまでに少し時間がかかりました。テスト中に右上の「スターボタン」を押しました。SharpKeysは、これがキー「D」であり、キーコード00_20
。しかし、正しいキーコードは00_181
別の試みはこれでした AutoHotKeyスクリプト これも私の異常なメディアキーを認識できませんでした
これは、キーボードボタンを再マップするための一般的な方法です。変なものでも
KeyCodes (ポータブル、415 KB)を使用してキーコードをキャッチします。 KeyCodes3.exeをダウンロードして抽出し、起動します。不思議なボタンを押すと、キーコードが10進数として表示されます
別の方法は、キーボードフックと「KeyHistory」を使用するこのAHKスクリプトでした。
#Persistent
#InstallMouseHook
#InstallKeybdHook
while !(getKeyState("F1", "T"))
KeyHistory
return
esc::exitapp
数値を10進数から16進数に変換します:171
"AB
ボタンを再マップするには、 AutoHotKeyのポータブルバージョン を使用します。
選択した.Zipバージョンをダウンロードしてどこかに解凍します。インストールは必要ありません。
新しいテキストファイルを作成して貼り付け
#NoEnv, #Persistent, #SingleInstance
vkB5::return ;music node button 181 » B5 do nothing
vkAC::return ;home button 172 » AC do nothing
vkAA::return ;search button 170 » AA do nothing
vkAB::Run, c:\myapp.exe ;star button 171 » AB execute tool
vkB4::Send {Volume_Mute} ;mail button 180 » B4 mute/unmute
vk
は、仮想キーコードの後に、リマップする16進キーコードを続けたものです::
は再マップ演算子です。左がトリガー、右が新しいボタンまたはアクションSend {<my_new_key>}
は このリスト の任意のキーです。{vkAB}
アクションとして自動起動フォルダーに新しいショートカットを作成して、起動ごとにAHKスクリプトを開始します。例えば
"D:\Tools\AutoHotKey\AutoHotkey.exe" "D:\Tools\AutoHotKey\RemapKeys.ahk"
再起動または手動のAHKスクリプトの開始後、すべてのボタンが再マッピングされる
つまり、次のレジストリキーにマルチメディアキーのマッピングがあります。 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey"
例えば。メールキーは通常、デフォルトのメールアプリを起動します。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\15\RegisteredApp = "メール"
これを置き換えてメモ帳を開く場合は、
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\15\ShellExecute = "notepad.exe"
(または、すべてのユーザーなどを変更する場合は、HKLMを変更します)
RegisteredAppは、その関数に登録されたアプリが呼び出されることを意味します。 (上記のメールのように)
関連付けは、特定のファイルタイプに関連付けられたアプリが開かれることを意味します。例えばMediaキーはデフォルトで.cdaに登録されています。つまり、そのキーを押すと、音楽CDの再生に使用されるデフォルトのアプリが開きます。
ShellExecuteは、実行する特定のプログラムを開きます。
詳細については この記事 をお読みください