Ogólny sposób na mapowanie każdego przycisku multimediów

13

Dzisiaj próbowałem przypisać klawisze multimedialne klawiatury do bardziej przydatnych funkcji i nie udało mi się tego.

wprowadź opis zdjęcia tutaj

Problem

  • Producent nie udostępnia narzędzia do wiązania i wykonywania niestandardowych poleceń.
    Moja poprzednia klawiatura firmy Logitech miała takie opcje w oprogramowaniu SetPoint
  • Kody kluczy (lub scancode) nie zostały rozpoznane przez większość programów, których użyłem do wyłapania podstawowych kodów kluczy.

    Na przykład doskonałe narzędzie SharpKeys ma tryb przechwytywania, w którym informuje się o naciśniętym klawiszu. Zajęło mi trochę czasu, zanim zdałem sobie sprawę, że podałem zły kod klucza. Podczas testów nacisnąłem przycisk „gwiazda” w prawym górnym rogu, a SharpKeys powiedział mi, że jest to klawisz „D” z jego kodem klucza 00_20. Ale poprawny kod klucza to00_181

    Kolejną próbą był skrypt AutoHotKey, który również nie rozpoznał moich niezwykłych kluczy multimedialnych

Zadanie

  • Znajdź prawidłowe kody kluczy nawet dla nietypowych przycisków multimedialnych
  • Ponownie zamapuj wszystkie klawisze multimediów bez instalacji dodatkowego narzędzia lub programu. Dopasowanie rejestru, użycie już zainstalowanego sterownika lub małej przenośnej aplikacji jest dopuszczalne
nixda
źródło

Odpowiedzi:

10

Jest to ogólny sposób na mapowanie przycisków klawiatury. Nawet dziwne


  1. Użyj kodu klucza (przenośny, 415 KB), aby złapać kod klucza. Pobierz, rozpakuj i uruchom KeyCodes3.exe. Naciśnij tajemniczy przycisk, a zobaczysz kod klucza jako liczbę dziesiętną

    wprowadź opis zdjęcia tutaj

    Alternatywnym sposobem był skrypt AHK wykorzystujący zaczep klawiatury i „KeyHistory”

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

    wprowadź opis zdjęcia tutaj

  2. Konwertuj liczbę z dziesiętnej na szesnastkową: 171»AB

  3. Użyj przenośnej wersji AutoHotKey, aby ponownie przypisać przycisk.
    Pobierz i rozpakuj gdzieś wybraną wersję .zip. Nie wymaga instalacji.
    Utwórz nowy plik tekstowy i wklej

    #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 oznacza wirtualny kod klucza, po którym następuje szesnastkowy kod klucza, który chcesz ponownie przypisać
    • ::jest operatorem remapu. Lewy to spust, prawy to twój nowy przycisk lub akcja
    • Send {<my_new_key>}może to być dowolny klucz z tej listy .
      Alternatywnie możesz wykonać niestandardową ścieżkę za pomocą polecenia Uruchom .
      Lub jeśli chcesz ponownie uruchomić przycisk multimediów, użyj {vkAB}jako akcji
  4. Utwórz nowy skrót w folderze autostartu, aby uruchomić skrypt AHK przy każdym uruchomieniu. Na przykład

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

Po ponownym uruchomieniu lub ręcznym uruchomieniu skryptu AHK wszystkie przyciski są ponownie mapowane

nixda
źródło
Wszystko działało oprócz mapowania klawisza wyciszenia w celu uruchomienia polecenia (np. vkAD::Run, c:\myapp.exeNie działało dla mnie), musiałem go ponownie mapować dwa razy, aby działało, coś w tym stylu, vkAD::F21a następnie kolejne mapowanie:F21::Run, c:\myapp.exe
BornToCode
Mój program antywirusowy (ESET EndpointAntivirus) oznaczył plik wykonywalny jako zagrożenie.
PhilMacKay
5

W skrócie: mapowanie kluczy multimedialnych można znaleźć w następującym kluczu rejestru: „HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ AppKey”

Np. Klucz pocztowy zwykle uruchamia domyślną aplikację pocztową.

HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ AppKey \ 15 \ RegisteredApp = „Mail”

Jeśli chcesz to zmienić, aby otworzyć Notatnik,

HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ AppKey \ 15 \ ShellExecute = "notepad.exe"

(Lub zmień HKLM, jeśli chcesz zmodyfikować dla wszystkich użytkowników itp.)

Zarejestrowana aplikacja oznacza, że ​​aplikacja zarejestrowana dla tej funkcji zostanie wywołana. (Podobnie jak w przypadku poczty powyżej)

Skojarzenie Oznacza, że ​​aplikacja powiązana z określonym typem pliku zostanie otwarta. Na przykład klawisz Media jest domyślnie zarejestrowany na .cda, co oznacza, że ​​domyślna aplikacja używana do odtwarzania płyt CD z muzyką zostanie otwarta po naciśnięciu tego klawisza.

ShellExecute otwiera określony program do uruchomienia.

Aby uzyskać więcej informacji, przeczytaj ten artykuł

Denis Masłow
źródło
2
Podaj zasadnicze części odpowiedzi z linków referencyjnych, ponieważ odpowiedź może stać się nieważna, jeśli połączona strona (strony) ulegną zmianie.
DavidPostill
Udało mi się zmienić mapowanie „Kalkulatora”, ale nie „Media PLay / Pause”.
PhilMacKay,