web-dev-qa-db-ja.com

すべてのメディアボタンを再マッピングする一般的な方法

今日、私はいくつかのキーボードメディアキーをより便利な機能に再マッピングしようとしましたが、失敗しました。

enter image description here

問題

  • 製造元は、カスタムコマンドをバインドして実行するユーティリティを提供していません。
    以前のLogitechのキーボードには、 SetPoint ソフトウェアにそのようなオプションがありました
  • キーコード(またはスキャンコード)は、基になるキーコードをキャッチするために私が使用していたほとんどのプログラムで認識されませんでした。

    たとえば、他の点では優れたツール SharpKeys には、押したばかりのキーを通知するキャッチモードがあります。間違ったキーコードが表示されることに気付くまでに少し時間がかかりました。テスト中に右上の「スターボタン」を押しました。SharpKeysは、これがキー「D」であり、キーコード00_20。しかし、正しいキーコードは00_181

    別の試みはこれでした AutoHotKeyスクリプト これも私の異常なメディアキーを認識できませんでした

タスク

  • 珍しいメディアボタンでも正しいキーコードを見つける
  • 追加のツールやプログラムをインストールせずに、すべてのメディアキーを再マップします。レジストリの微調整、既にインストールされているドライバーまたは小さなポータブルアプリの使用は許容されます
13
nixda

これは、キーボードボタンを再マップするための一般的な方法です。変なものでも


  1. KeyCodes (ポータブル、415 KB)を使用してキーコードをキャッチします。 KeyCodes3.exeをダウンロードして抽出し、起動します。不思議なボタンを押すと、キーコードが10進数として表示されます

    enter image description here

    別の方法は、キーボードフックと「KeyHistory」を使用するこのAHKスクリプトでした。

    #Persistent
    #InstallMouseHook
    #InstallKeybdHook
    while !(getKeyState("F1", "T"))
          KeyHistory
    return
    esc::exitapp
    

    enter image description here

  2. 数値を10進数から16進数に変換します:171"AB

  3. ボタンを再マップするには、 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>}このリスト の任意のキーです。
      または、 Run command を使用してカスタムパスを実行することもできます。
      または、メディアボタンを再度実行する場合は、{vkAB}アクションとして
  4. 自動起動フォルダーに新しいショートカットを作成して、起動ごとにAHKスクリプトを開始します。例えば

    "D:\Tools\AutoHotKey\AutoHotkey.exe" "D:\Tools\AutoHotKey\RemapKeys.ahk"
    

再起動または手動のAHKスクリプトの開始後、すべてのボタンが再マッピングされる

10
nixda

つまり、次のレジストリキーにマルチメディアキーのマッピングがあります。 "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は、実行する特定のプログラムを開きます。

詳細については この記事 をお読みください

5
Denis Maslov