Общий способ переназначить каждую кнопку мультимедиа


13

Сегодня я попытался переназначить некоторые клавиши клавиатуры на более полезные функции и не смог этого сделать.

введите описание изображения здесь

Проблема

  • Производитель не предоставляет утилиту для привязки и выполнения пользовательских команд.
    Моя предыдущая клавиатура от Logitech имела такие опции в программном обеспечении SetPoint
  • Коды клавиш (или сканкоды) не распознавались большинством программ, которые я использовал для отлова базовых кодов клавиш.

    Например, в противном случае отличный инструмент SharpKeys имеет режим поймать , где он говорит вам , что ключ , который вы только что нажал. Мне потребовалось некоторое время, чтобы понять, что он сказал мне неправильный код клавиши. Во время тестов я нажал «звездочку» в правом верхнем углу, и SharpKeys сказал мне, что это клавиша «D» с ее кодом клавиши 00_20. Но правильный код ключа будет00_181

    Другой попыткой был скрипт AutoHotKey, который также не смог распознать мои необычные медиа клавиши

Задание

  • Найдите правильные коды клавиш даже для необычных мультимедийных кнопок
  • Переопределите все клавиши мультимедиа без установки дополнительного инструмента или программы. Подстройка реестра, использование уже установленного драйвера или небольшого портативного приложения приемлемо

Ответы:


10

Это общий способ переназначения любых кнопок клавиатуры. Даже странные


  1. Используйте KeyCodes (переносной, 415 КБ), чтобы поймать код ключа. Скачайте, распакуйте и запустите KeyCodes3.exe. Нажмите на загадочную кнопку, и вы увидите код клавиши в виде десятичного числа

    введите описание изображения здесь

    Альтернативным способом был этот скрипт AHK, который использует хук клавиатуры и «KeyHistory»

    #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 \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Explorer \ AppKey \ 15 \ ShellExecute = "notepad.exe"

(Или измените HKLM, если вы хотите изменить для всех пользователей и т. Д.)

RegisteredApp означает, что будет вызвано приложение, зарегистрированное для этой функции. (Как почта выше)

Ассоциация Означает, что приложение, связанное с определенным типом файла, будет открыто. Например, клавиша Media по умолчанию зарегистрирована в .cda, то есть приложение по умолчанию, используемое для воспроизведения музыкальных компакт-дисков, будет открыто при нажатии этой клавиши.

ShellExecute открывает определенную программу для запуска.

Для более подробной информации читайте эту статью


2
Пожалуйста, процитируйте основные части ответа по ссылочной ссылке (ссылкам), так как ответ может стать недействительным, если связанные страницы изменятся.
DavidPostill

Мне удалось переназначить «Калькулятор», но не «Media PLay / Pause».
PhilMacKay
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.