Manière générique de remapper chaque bouton multimédia

13

Aujourd'hui, j'ai essayé de remapper certaines touches multimédias du clavier pour des fonctions plus utiles et je n'ai pas réussi à le faire.

entrez la description de l'image ici

Le problème

  • Le fabricant ne fournit pas d'utilitaire pour lier et exécuter des commandes personnalisées.
    Mon ancien clavier de Logitech avait de telles options dans leur logiciel SetPoint
  • Les codes clés (ou scancode) n'étaient pas reconnus par la plupart des programmes que j'ai utilisés pour capturer les codes clés sous-jacents.

    Par exemple, l'outil par ailleurs excellent, SharpKeys a un mode de capture où il vous indique sur quelle touche vous venez d'appuyer. Il m'a fallu un certain temps pour me rendre compte qu'il m'avait indiqué un mauvais code de clé. Pendant mes tests, j'ai appuyé sur le "bouton étoile" en haut à droite et SharpKeys m'a dit que c'était la clé "D" avec son code de clé 00_20. Mais le code clé correct serait00_181

    Un autre essai a été ce script AutoHotKey qui a également échoué à reconnaître mes clés multimédias inhabituelles

La tâche

  • Trouvez les bons codes clés même pour les boutons multimédias inhabituels
  • Remappez toutes les clés de média sans aucune installation d'un outil ou programme supplémentaire. Un ajustement du registre, l'utilisation d'un pilote déjà installé ou d'une petite application portable est acceptable
nixda
la source

Réponses:

10

Il s'agit d'un moyen générique de remapper tous les boutons du clavier. Même les plus étranges


  1. Utilisez KeyCodes (portable, 415 Ko) pour capturer le code clé. Téléchargez, extrayez et démarrez KeyCodes3.exe. Appuyez sur votre mystérieux bouton et vous verrez le code clé sous forme de nombre décimal

    entrez la description de l'image ici

    Une autre manière était ce script AHK qui utilise un crochet de clavier et "KeyHistory"

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

    entrez la description de l'image ici

  2. Convertissez le nombre de décimal en hexadécimal: 171»AB

  3. Utilisez la version portable d'AutoHotKey pour remapper le bouton.
    Téléchargez et extrayez la version .zip de votre choix quelque part. Aucune installation nécessaire.
    Créez un nouveau fichier texte et collez

    #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 représente le code de clé virtuelle suivi de votre code de clé hexadézimal que vous souhaitez remapper
    • ::est l'opérateur de remappage. Gauche est le déclencheur, à droite est votre nouveau bouton ou action
    • Send {<my_new_key>}pourrait être n'importe quelle clé de cette liste .
      Vous pouvez également exécuter un chemin personnalisé avec la commande Exécuter .
      Ou si vous souhaitez exécuter à nouveau un bouton multimédia, utilisez {vkAB}comme action
  4. Créez un nouveau raccourci dans votre dossier de démarrage automatique pour démarrer votre script AHK à chaque démarrage. Par exemple

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

Après un redémarrage ou un démarrage manuel du script AHK, tous les boutons sont remappés

nixda
la source
Tout a fonctionné, sauf le mappage d'une touche muette pour exécuter une commande (par exemple vkAD::Run, c:\myapp.exe, ne fonctionnait pas pour moi), j'ai dû la remapper deux fois pour la faire fonctionner, quelque chose comme vkAD::F21, puis un autre mappage:F21::Run, c:\myapp.exe
BornToCode
Mon antivirus (ESET EndpointAntivirus) a signalé le téléchargement exécutable comme une menace.
PhilMacKay
5

En bref: vous pouvez trouver le mappage des clés multimédias dans la clé de registre suivante: "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ AppKey"

Par exemple, la clé de messagerie lance généralement l'application de messagerie par défaut.

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

Si vous souhaitez le remplacer pour ouvrir le Bloc-notes,

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

(Ou changez HKLM si vous souhaitez modifier pour tous les utilisateurs, etc.)

RegisteredApp signifie que l'application enregistrée pour cette fonction sera appelée. (Comme Mail ci-dessus)

Association Signifie que l'application associée à un type de fichier particulier sera ouverte. Par exemple, la touche Media est enregistrée par défaut en .cda, ce qui signifie que l'application par défaut utilisée pour lire des CD de musique sera ouverte en appuyant sur cette touche.

ShellExecute ouvre un programme particulier à exécuter.

Pour plus de détails, lisez cet article

Denis Maslov
la source
2
Veuillez citer les parties essentielles de la réponse à partir du ou des liens de référence, car la réponse peut devenir invalide si la ou les pages liées changent.
DavidPostill
J'ai pu remapper "Calculatrice" mais pas "Media PLay / Pause".
PhilMacKay