Mouse and keyboard macros and hotkeys.

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

Combinaisons de touches (Raccourcis Souris, Joystick et clavier)

Les combinaisons de touches sont parfois référencées comme des touches de raccourcis du fait de leur abilité à déclencher facilement une action (telle que lancer un programme ou une macro clavier). Dans l'exemple suivant, la combinaison de touches Win+N est configurée pour lancer le Bloc-Notes. Le signe dièse [#] représente la touche Windows:

#n::
Run Notepad
return

Dans la dernière ligne ci-dessus, "return" sert à terminer la combinaison de touches. Cependant, si une combinaison de touches n'a besoin d'exécuter qu'une seule ligne, cette ligne peut être listée à droite des deux double-points. En d'autres mots, le return est implicite:

#n::Run Notepad

Pour utiliser plus d'un modificateur avec une combinaison de touches, listez-les consécutivement. L'exemple suivant utilise ^! pour indiquer Control+Alt:

^!s::
Send Sincèrement,{enter}John Smith ; Cette ligne envoie des codes de touches vers la fenêtre active (la première).
return

Vous pouvez utiliser les symboles modificateurs suivants pour définir des combinaisons de touches:

Symbole Description
# Win (Touche avec le logo Windows)
! Alt
^ Control
+ Shift
& Un "ET commercial" peut être utilisé entre chaque paire de touches ou de boutons de souris pour les associer en une combinaisons de touches personalisée. Voir ci-dessous pour les détails.
< Utilise la touche gauche de la paire. exemple: <!a est identique à !a excepté que seule la touche Alt gauche le déclenchera.
> Utilise la touche droite de la paire. Ces deux lignes, celle-ci et celle au dessus ne sont pas supportées sous Windows 95/98/ME.
<^>!

AltGr (alternate graving). Si la disposition de votre clavier comporte une touche AltGr au lieu d'une touche Alt-droite, cette série de symboles peut généralement être utilisée pour représenter AltGr (nécessite Windows NT/2k/XP ou ultérieur). Par exemple:

<^>!m::MsgBox Vous avez préssé AltGr+m.
<^<!m::MsgBox Vous avez préssé ControlGauche+AltGauche+m.
*

Caractère générique: Lance la combinaison de touches même si des extra modificateurs on été enfoncés. Ceci est souvent utilisé en conjonction avec le remappage des touches ou des boutons. Par exemple:

*#c::Run Calc.exe ; Win+C, Shift+Win+C, Ctrl+Win+C, etc. déclencheront tous cette combinaison de touches.
*ScrollLock::Run Notepad ; Enfoncer la touche défilement déclenchera cette combinaison de touches même quand des touches des modificateurs sont enfoncées.

Cette fonctionalité n'est pas supportée sous Windows 95/98/ME.

~

Cette fonction native de combinaison de touches ne devrait pas être supprimée (cachée du système) quand la combinaison de touches se déclenche. Dans chacun des deux exemples ci-dessous, le clic de souris de l'utilisateur sera envoyé vers la fenêtre active:

~RButton::MsgBox Vous avez cliqué le bouton droit de la souris.
~RButton & C::MsgBox Vous avez préssé C en maintenant enfoncé le bouton droit de la souris.

Note: Les combinaisons de touches spéciales qui sont des substituts pour alt-tab ignorent toujours ce paramètre. Cette fonctionalité n'est pas supportée sous Windows 95/98/ME.

$

Ceci n'est généralement nécessaire que si le script utilise la commande Send pour envoyer les touches qui incluent la combinaison de touche elle-même, ce qui autrement pourrait provoquer son propre déclenchement. Le comportement exact du préfixe $ varie selon le système d'exploitation:

Sous Windows NT4/2k/XP ou ultérieur: Le préfixe $ force le hook clavier à être utilisé pour implémenter cette combinaison de touches, ce qui a pour effet secondaire d'empêcher la commande Send de la déclencher. Le prefixe $ est équivalent à la spécification de #UseHook quelque part au dessus de la définition de la combinaison de touches.

Sous Windows 95/98/Me et AutoHotkey v1.0.23+: La combinaison de touches est désactivée durant l'exécution de sa tâche et réactivée après. Comme effet secondaire, si #MaxThreadsPerHotkey est positionné plus haut que 1, il se comportera comme s'il était positionné à 1 pour des telles combinaisons de touches.

UP

Le mot UP peut suivre le nom d'une combinaison de touches pour provoquer le lancement de la combinaison de touches lorsque la touche est relachée plutôt que lorsque la touche est enfoncée. L'exemple suivant remappe LWin pour qu'il devienne LControl:

*LWin::Send {LControl Down}
*LWin Up::Send {LControl Up}

"Up" peut aussi être utilisé avec des combinaisons de touches normales comme dans cet exemple: ^!r Up::MsgBox Vous avez pressé et relaché Ctrl+Alt+R.

Cette fonctionalité ne s'applique pas aux boutons du joystick. Elle nécessite aussi la version v1.0.28+ et Windows NT4/2000/XP ou suivant.

(Voir la Liste des touches pour une liste complète des noms des touches clavier et des boutons de souris/joystick)


Les étiquettes de combinaison de touches peuvent être utilisées comme si elles c'étaient des étiquettes normales: Vous pouvez utiliser avec elles Gosub/Goto et définir plus d'une étiquette de combinaison de touches pour faire la même sous-routine. Par exemple:

^Numpad0::
^Numpad1::
MsgBox Appuyer soit sur Control+Numpad0 soit sur Control+Numpad1 affichera ce message.
return

Une touche ou une association de touches peut être désactivée du système entier en ne lui associant rien à faire. L'exemple suivant désactive la touche Windows-droite:

RWin::return


Fonctionalités des combinaisons de touches disponibles seulement pour Windows NT, 2000, XP, et au-delà:

Vous pouvez définir une combinaison personalisée de deux touches (excepté les boutons du joystick) en utilisant " & " entre elles. Dans l'exemple suivant, vous devriez enfoncer Numpad0 puis presser la seconde touche pour déclencher la combinaison de touches:

Numpad0 & Numpad1::MsgBox Vous pressiez Numpad1 pendant que vous avez enfoncé Numpad0.
Numpad0 & Numpad2::Run Notepad

Dans l'exemple ci-dessus, Numpad0 devient une touche de préfixe. Les touches de préfixes peuvent aussi être assignées à leurs propres actions tel que dans l'exemple suivant, mais leur action sera uniquement déclenchée quand la touche est relachée et seulement si vous n'avez pas appuyé sur n'importe quelle autre touche pendant que la touche commençait à être enfoncée:

Numpad0::WinMaximize A ; Agrandit la fenêtre active.

Tourner la molette de la souris vers le haut ou vers le bas peut être défini comme une combinaison de touches comme dans ces exemples:

MButton & WheelDown::MsgBox Vous avez tourné la molette de la souris vers le bas pendant que vous teniez enfoncé le bouton du milieu.
^!WheelUp::MsgBox Vous avez tourné la molette de la souris vers le haut pendant que vous mainteniez enfoncé Control+Alt.

Un autre fonctionalité est l'habilité à forcer les touches Numlock(VerrNum), Capslock(Majuscules), et Scrolllock(Arrêt Défil) à être AlwaysOn ou AlwaysOff. Par exemple: SetNumlockState AlwaysOn

De plus, Les combinaisons de touches intégrées à Windows telles que Win-E (#e) et Win-R (#r) peuvent être facilement remplacées simplement en leur assignant une action dans le script. Voir la page override pour les détails.

Substituts pour Alt-Tab: AltTab et ShiftAltTab sont deux des commandes spéciales qui sont reconnues seulement quand elles sont utilisées avec des combinaison de touches. Ils vous permettent de créer des chemins alternatifs au alt-tabbing. Par exemple, avec les combinaisons de touches suivantes actives, vous enfonceriez la touche ALT gauche et tourneriez la roue dans l'une ou l'autre direction pour vous déplacer en avant et en arrière à travers le menu:

LAlt & WheelDown::AltTab
LAlt & WheelUp::ShiftAltTab

Similairement, la molette de la souris peut être transformé en un substitut complet pour Alt-tab. Cliquer sur le bouton affichera le menu et tourner la roue naviguera à travers lui:

MButton::AltTabMenu
WheelDown::AltTab
WheelUp::ShiftAltTab

Pour appuyer facilement sur alt-tab avec votre main droite sur le clavier, essayez ce qui suit:

RControl & RShift::AltTab ; Enfoncer control-droit puis presser shift-droit répétitivement pour un déplacement en avant.
RControl & Enter::ShiftAltTab ; Sans avoir à relacher control-droit, presser Entrée pour inverser la direction.

Les Actions Alt-tab:
AltTab: Si le menu est affiché, déplace en avant dans celui-ci. Autrement, affiche le menu si la combinaison de touches est une combinaison "&" de deux touches; Autrement, ne fait rien.
ShiftAltTab: Pareil que ci-dessus excepté que le déplacement dans le menu est vers l'arrière.
AltTabAndMenu: Si le menu est affiché, déplace en avant dans celui-ci. Autrement, affiche le menu.
AltTabMenuDismiss: Ferme le menu Alt-tab.

Pour annuler une combinaison-de-touches-invoquée menu Alt-tab sans activer la fenêtre sélectionée, utiliser une combinaison de touches telle que ce qui suit. Ceci pourrait nécessiter un ajustement dépendant de: 1) le moyen par lequel le menu alt-tab était affiché à l'origine; et 2) si le script a installé le hook clavier.

LCtrl & CapsLock::AltTab
!MButton:: ; Bouton du milieu de la souris. Le préfixe ! fait qu'il "tire" pendant que le touche Alt est enfoncée (Ce qui se produit si le menu alt-tab est visible).
IfWinExist ahk_class #32771 ; Indiques que le menu alt-tab est présent à l'écran.
Send !{Escape}{Alt up}
return

Actuellement, toutes les actions spéciales Alt-tab doivent être assignées directement à une combinaison de touches  comme dans les exemples ci-dessus (i.e. elles ne peuvent pas être utilisées comme si c'étaient des commandes). Aussi, la précence du menu alt-tab peut être détectée via IfWinExist ahk_class #32771

Pour plus d'idées sur la façon d'obtenir le meilleur de votre clavier, souris et joystick, voir les combinaisons de touches avancées.


Remarques à propos des combinaisons de touches

Chaque touche du pavé numérique peut lancer deux différentes sous-routines de combinaison de touches en fonction de l'état de VerrNum. Alternativement, une touche du pavé numérique peut lancer la même sous-routine quel que soit l'état de VerrNum. Par exemple:

NumpadEnd::
Numpad1::
MsgBox, Cette combinaison de touches est lancée sans se soucier si VerrNum est actif.
return

Si l'opérateur tilde (~) est utilisé avec une touche de préfixe même une seule fois, ce préfixe sera toujours envoyé à travers la fenêtre active. Par exemple, dans chacune des deux combinaisons de touches ci-dessous, la fenêtre active recevra tout les clics-droits même si seulement une des définitions contient un tilde:

 ~RButton & LButton::MsgBox Vous avez préssé le bouton gauche de la souris pendant que vous teniez enfoncé le droit.
RButton & WheelUp::MsgBox Vous avez tourné la molette de la souris en maintenant enfoncé le bouton droit.

La commande Suspend peut désactiver temporairement toutes les combinaisons de touches excepté pour celles que vous avez exemptées.

Au moyen de la commande Hotkey, les combinaisons de touches peuvent être crées dynamiquement pendant que le script s'exécute. La commande Hotkey peut aussi modifier, désactiver ou activer individuellement les combinaisons de touches existantes dans le script.

Les combinaisons de touches de Joystick ne supportent pas actuellement les préfixes modificateurs tels que ^ (Control) et # (Win). Cepandant, vous pouvez utiliser GetKeyState pour imiter cet effet comme montré dans l'exemple suivant:

Joy2::
if not GetKeyState("Control") ; Aucune des deux touches Control (droite et gauche) n'est enfoncée.
return ; i.e. Ne rien faire.
MsgBox Vous avez pressé le second bouton du premier joystick pendant que vous mainteniez enfoncée la touche Control.
return

Le programme est quasi multi-tâches, ce qui permet à une nouvelle combinaison de touches d'être lancée même quand une sous-routine de combinaison de touches précédante est toujours en cours d'exécution. Par exemple, de nouvelles combinaisons de touches peuvent être lancées même pendant qu'une MsgBox est en train d'être affichée par la combinaison de touches courante.