Mouse and keyboard macros and hotkeys.

Accueil | Téléchargement | Documentation | Changelog | Support | Forum

Remappage des Touches et des Boutons


Note: La caractéristique suivante n'est pas supportée sous Windows 95/98/Me ou pour les joysticks.
Pour remapper sous Windows 9x, voir le remappage Windows 9x
Pour remapper les joysticks, voir le remappage joystick.

Le Remappage Intégré [v1.0.40+]

la syntaxe pour la fonctionalité de remappage intégré est OriginKey::DestinationKey. Par exemple, un script consistant seulement en ces lignes ferait que la touche "a" se comporte comme la touche "b":

a::b

L'exemple précédent ne modifie pas la touche "b" elle-même. La touche "b" continuerait à envoyer le code de touche "b" à moins que vous la remappiez vers quelque chose d'autre comme montré dans l'exemple suivant:

a::b
b::a

Les exemples ci-dessus utilisent des minuscules parce que la casse est importante. Par exemple, la ligne suivante produirait un B majuscule que vous tapiez soit "a" soit "A"::

a::B

Pour remapper la souris au lieu du clavier, utilisez la même approche. Par exemple:

MButton::Shift ;Fait que le bouton du milieu se comporte comme la touche Shift (Maj).
XButton1::LButton ; Fait que le 4ème bouton de la souris se comporte comme le clic gauche de la souris.
RAlt::RButton ; Fait que la touche Alt droite agisse comme le clic droit de la souris.
Voici quelques autres exemples de remappage utiles:
Capslock::Ctrl ; Fait que VerrMaj devienne une touche Control.
XButton2::^LButton ; Fait que le cinquième bouton de la souris produise Control-ClickGauche.
RAlt::AppsKey ; Fait que la touche Alt droite devienne la touche Apps (qui est la touche qui ouvre le menu contextuel).
RCtrl::RWin ; Fait que la touche Control droite devienne la touche Windows droite.
Ctrl::Alt ; Fait que les deux touches Control agissent comme une touche Alt. Cependant, voir les problèmes alt-tab.
^x::^c ; Fait que Control-X produise Control-C. Cela fait aussi que ^!x produise ^!c, et ^+x produise ^+c, etc.
RWin::Return ; Désactive la touche Windows droite en lui faisant faire simplement un return.

Vous pouvez tester chacun de ces exemples en les copiant dans un nouveau fichier texte tel que "Remap.ahk", puis en chargeant le fichier.

Voir la Liste des Touches pour une liste complète des noms des touches et boutons de souris.

Remarques

Remapper une touche ou un bouton est "achevé" en respectant les points suivants:

Quand un script est chargé, chaque remappage est translaté en une paire de combinaisons de touches. Par exemple, un script contenant a::b produit exactement le même effet qu'un script contenant les deux combinaisons de touches suivantes:

*a::
SetKeyDelay -1 ; Si la touche de destination est un bouton de souris, SetMouseDelay est utilisé à la place.
Send {Blind}{b down}
return

*a up::
SetKeyDelay -1
Send {Blind}{b up}
return

Cependant, les combinaisons de touches ci-dessus varient selon les circonstances suivantes:

  1. Quand la touche source est LCtrl et la touche de destination est une touche Alt, la ligne Send {Blind}{LAlt down} est remplacée par by Send {Blind}{LCtrl up}{LAlt down}. C'est la même chose si la source est RCtrl, excepté que {RCtrl up} est utilisé.
  2. Quand une touche du clavier est remappée pour devenir un bouton de souris (ex. RCtrl::RButton), la première combinaison de touches ci-dessus est remplacée par ce qui suit, ce qui empêche la fonction de répétition automatique du clavier de générer des clics de souris répétés:
    *RCtrl::
    SetMouseDelay -1
    if not GetKeyState("RButton") ; i.e. le bouton droit de la souris n'est pas encore enfoncé.
    Send {Blind}{RButton down}
    return

Puisque les remappages sont translatés en combinaisons de touches comme décrit précédemment, la commande Suspend les affecte. Similairement, la commande Hotkey peut désactiver ou modifier un remappage. Par exemple, les deux commandes suivantes désactiveraient le remappage a::b.

Hotkey, *a, off
Hotkey, *a up, off

Bien qu'une touche remappée puisse déclencher des combinaisons de touches normales, elle ne peut pas déclencher des combinaisons de touches souris ou des combinaisons de touches d'interception (hook hotkeys). Par exemple, si le remappage a::b est actif, presser Ctrl-Alt-A déclencherait la combinaison de touches ^!b si ce n'est pas une combinaison de touches d'interception. Si c'est une combinaison de touches d'interception, vous pouvez définir ^!a comme une combinaison de touches si vous voulez que Ctrl-Alt-A accomplisse la même action que Ctrl-Alt-B. Par exemple:

a::b
^!a::
^!b::
ToolTip Vous avez pressé %A_ThisHotkey%.
return

Problèmes Alt-tab: Si vous remappez une touche ou un bouton de souris pour qu'il devienne une touche Alt, cette touche ne sera probablement pas capable d'effectuer un alt-tab proprement. Un contournement possible est d'ajouter la combinaison de touches *Tab::Send {Blind}{Tab} -- mais soyez conscient qu'elle interfèrera probablement avec l'utilisation de la touche Alt réelle pour effectuer un alt-tab. Donc, cela ne devrait être utilisé que lorsque vous effectuez un alt-tab au moyen d'une touche remappée et/ou les combinaisons de touches alt-tab.

En plus des touches et des boutons de souris dans la page Liste des Touches, la touche source pourrait aussi être une touche virtuelle (VKnn) ou un scan code (SCnnn) comme décrit dans la page touches spéciales. C'est la même chose pour la touche de destination excepté qu'un scan code peut optionellement être spécifié après la touche virtuelle. Par exemple, sc01e::vk42sc030 est équivalent à a::b sur la plupart des dispositions de claviers.

Pour désactiver une touche plutôt que de la remapper, faîtes une combinaisons de touches qui effectue simplement un return. Par exemple, F1::return désactiverait la touche F1.

Les touches suivantes ne sont pas supportées par la méthode de remappage intégrée:

Sur une note relative, le clavier peut-être utilisé pour déplacer le curseur de la souris. Le script Keyboard-To-Mouse en est un exemple.

Méthode de Remappage pour Windows 95/98/Me

La méthode recommandée est d'utiliser Send et KeyWait. Par exemple, la combinaison de touches suivante fait que la touche 'A' devienne la touche flèche-gauche:

a::
Send {Left down} ; Enfonce la touche flèche-gauche.
KeyWait a ; Attend que l'utilisateur relache la touche.
Send {Left up} ; Relache la touche flèche-gauche.
return