重新映射每个媒体按钮的通用方法


13

今天,我试图将一些键盘媒体键重新映射为更有用的功能,但没有这样做。

在此处输入图片说明

问题

  • 制造商不提供绑定和执行自定义命令的实用程序。
    我以前使用Logitech的键盘在SetPoint软件中有这样的选项
  • 我用来捕获基础键码的大多数程序都无法识别键码(或扫描码)。

    例如,另外出色的工具SharpKeys具有捕获模式,可在其中告知您刚刚按下的键。我花了一些时间才意识到它告诉我错误的键码。在测试期间,我按下了右上角的“星号按钮”,而SharpKeys告诉我这是键码“ D” 00_20。但是正确的关键代码是00_181

    另一个尝试是此AutoHotKey脚本,该脚本也无法识别我异常的媒体密钥

任务

  • 即使对于异常的媒体按钮,也要找到正确的键码
  • 重新映射所有媒体密钥,而无需安装任何其他工具或程序。可以进行注册表调整,使用已安装的驱动程序或小型便携式应用程序

Answers:


10

这是重新映射任何键盘按钮的通用方法。甚至很奇怪


  1. 使用KeyCodes(便携式,415 KB)捕获密钥代码。下载,解压缩并启动KeyCodes3.exe。按下您的神秘按钮,您会看到密钥代码为十进制数字

    在此处输入图片说明

    另一种方法是使用键盘钩和“ KeyHistory”的AHK脚本

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

    在此处输入图片说明

  2. 将数字从十进制转换为十六进制: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 代表虚拟键码,后跟您要重新映射的十六进制键码
    • ::是重映射运算符。左边是触发器,右边是您的新按钮或操作
    • Send {<my_new_key>}可以是此列表中的任何键。
      或者,您可以使用“ 运行”命令执行自定义路径。
      或者,如果您想再次执行媒体按钮,请{vkAB}用作操作
  4. 在自动启动文件夹中创建一个新的快捷方式,以在每次启动时启动AHK脚本。例如

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

重新启动或手动AHK脚本启动后,所有按钮都会重新映射


除映射静音键以运行命令外,其他所有操作均有效(例如,vkAD::Run, c:\myapp.exe对我而言不起作用),我不得不将其重新映射两次才能使其正常工作,类似vkAD::F21然后是另一种映射:F21::Run, c:\myapp.exe
BornToCode

我的防病毒软件(ESET EndpointAntivirus)将可执行文件下载标记为威胁。
PhilMacKay

5

简而言之:您可以在以下注册表项中找到多媒体密钥映射:“ 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表示将调用为此功能注册的应用程序。(如上面的邮件)

关联表示将打开与特定文件类型关联的应用。例如,“媒体”键默认情况下注册为.cda,这意味着在按下该键时将打开用于播放音乐CD的默认应用程序。

ShellExecute打开要运行的特定程序。

有关更多详细信息,请阅读本文


2
请在参考链接中引用答案的关键部分,因为如果链接页面发生更改,答案可能会失效。
DavidPostill

我已经能够重新映射“计算器”,但不能重新映射“媒体播放/暂停”。
PhilMacKay
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.