9

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

Эта проблема

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

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

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

Задание

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

2 ответа2

8

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


  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-скрипта все кнопки переназначаются

4

Вкратце: сопоставление мультимедийных ключей можно найти в следующем разделе реестра: «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey»

Например, почтовый ключ обычно запускает почтовое приложение по умолчанию.

HKLM\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Explorer \ AppKey \ 15 \ RegisteredApp = "Mail"

Если вы хотите заменить это, чтобы открыть Блокнот,

HKCU\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Explorer \ AppKey \ 15 \ ShellExecute = "notepad.exe"

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .