Aide:Send.txt
De Wiki AutoIt Français
Document original V3.3.6.1 :
###Function###
Send
###Description###
Sends simulated keystrokes to the active window.
###Syntax###
Send ( "keys" [, flag] )
###Parameters###
@@ParamTable@@
keys
The sequence of keys to send.
flag
[optional] Changes how "keys" is processed:
flag = 0 (default), Text contains special characters like + and ! to indicate SHIFT and ALT key-presses.
flag = 1, keys are sent raw.
@@End@@
###ReturnValue###
None.
###Remarks###
See the <a href="../appendix/SendKeys.htm">Appendix</a> for some tips on using Send. AutoIt can send all ASCII and Extended ASCII characters (0-255), to send UNICODE characters you must use the "ASC" option and the code of the character you wish to send (see {ASC} at the bottom of the table below).
The "Send" command syntax is similar to that of ScriptIt and the Visual Basic "SendKeys" command. Characters are sent as written with the exception of the following characters:
'!'
This tells AutoIt to send an ALT keystroke, therefore Send("This is text!a") would send the keys "This is text" and then press "ALT+a".
N.B. Some programs are very choosy about capital letters and ALT keys, i.e. "!A" is different to "!a". The first says ALT+SHIFT+A, the second is ALT+a. If in doubt, use lowercase!
'+'
This tells AutoIt to send a SHIFT keystroke, therefore Send("Hell+o") would send the text "HellO". Send("!+a") would send "ALT+SHIFT+a".
'^'
This tells AutoIt to send a CONTROL keystroke, therefore Send("^!a") would send "CTRL+ALT+a".
N.B. Some programs are very choosy about capital letters and CTRL keys, i.e. "^A" is different to "^a". The first says CTRL+SHIFT+A, the second is CTRL+a. If in doubt, use lowercase!
'#'
The hash now sends a Windows keystroke; therefore, Send("#r") would send Win+r which launches the Run dialog box.
You can set SendCapslockMode to make CAPS LOCK disabled at the start of a Send operation and restored upon completion.
However, if a user is holding down the Shift key when a Send function begins, text may be sent in uppercase.
One workaround is to Send("{SHIFTDOWN}{SHIFTUP}") before the other Send operations.
Certain keyboard as the Czech one send different characters when using the Shift Key or being in CAPS LOCK enabled and sending a char. Due to the send AutoIt implementation the CAPS LOCKed char will be sent as Shifted one so <b>it will not work</b>.
Certain special keys can be sent and should be enclosed in braces:
N.B. Windows does not allow the simulation of the "CTRL-ALT-DEL" combination!
@@StandardTable1@@
<b>Send Command (if zero flag)</b> <b>Resulting Keypress</b>
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{SPACE} SPACE
{ENTER} ENTER key on the main keyboard
{ALT} ALT
{BACKSPACE} or {BS} BACKSPACE
{DELETE} or {DEL} DELETE
{UP} Up arrow
{DOWN} Down arrow
{LEFT} Left arrow
{RIGHT} Right arrow
{HOME} HOME
{END} END
{ESCAPE} or {ESC} ESCAPE
{INSERT} or {INS} INS
{PGUP} PageUp
{PGDN} PageDown
{F1} - {F12} Function keys
{TAB} TAB
{PRINTSCREEN} Print Screen key
{LWIN} Left Windows key
{RWIN} Right Windows key
{NUMLOCK on} NUMLOCK (on/off/toggle)
{CAPSLOCK off} CAPSLOCK (on/off/toggle)
{SCROLLLOCK toggle} SCROLLLOCK (on/off/toggle)
{BREAK} for Ctrl+Break processing
{PAUSE} PAUSE
{NUMPAD0} - {NUMPAD9} Numpad digits
{NUMPADMULT} Numpad Multiply
{NUMPADADD} Numpad Add
{NUMPADSUB} Numpad Subtract
{NUMPADDIV} Numpad Divide
{NUMPADDOT} Numpad period
{NUMPADENTER} Enter key on the numpad
{APPSKEY} Windows App key
{LALT} Left ALT key
{RALT} Right ALT key
{LCTRL} Left CTRL key
{RCTRL} Right CTRL key
{LSHIFT} Left Shift key
{RSHIFT} Right Shift key
{SLEEP} Computer SLEEP key
{ALTDOWN} Holds the ALT key down until {ALTUP} is sent
{SHIFTDOWN} Holds the SHIFT key down until {SHIFTUP} is sent
{CTRLDOWN} Holds the CTRL key down until {CTRLUP} is sent
{LWINDOWN} Holds the left Windows key down until {LWINUP} is sent
{RWINDOWN} Holds the right Windows key down until {RWINUP} is sent
{ASC nnnn} Send the ALT+nnnn key combination
{BROWSER_BACK} 2000/XP Only: Select the browser "back" button
{BROWSER_FORWARD} 2000/XP Only: Select the browser "forward" button
{BROWSER_REFRESH} 2000/XP Only: Select the browser "refresh" button
{BROWSER_STOP} 2000/XP Only: Select the browser "stop" button
{BROWSER_SEARCH} 2000/XP Only: Select the browser "search" button
{BROWSER_FAVORITES} 2000/XP Only: Select the browser "favorites" button
{BROWSER_HOME} 2000/XP Only: Launch the browser and go to the home page
{VOLUME_MUTE} 2000/XP Only: Mute the volume
{VOLUME_DOWN} 2000/XP Only: Reduce the volume
{VOLUME_UP} 2000/XP Only: Increase the volume
{MEDIA_NEXT} 2000/XP Only: Select next track in media player
{MEDIA_PREV} 2000/XP Only: Select previous track in media player
{MEDIA_STOP} 2000/XP Only: Stop media player
{MEDIA_PLAY_PAUSE} 2000/XP Only: Play/pause media player
{LAUNCH_MAIL} 2000/XP Only: Launch the email application
{LAUNCH_MEDIA} 2000/XP Only: Launch media player
{LAUNCH_APP1} 2000/XP Only: Launch user app1
{LAUNCH_APP2} 2000/XP Only: Launch user app2
@@End@@
To send the ASCII value A (same as pressing ALT+065 on the numeric keypad)
Send("{ASC 065}")
(When using 2 digit ASCII codes you must use a leading 0, otherwise an obsolete 437 code page is used).
To send UNICODE characters enter the character code (decimal or hex), for example this sends a Chinese character
Send("{ASC 2709}") or Send("{ASC 0xA95}")
Single keys can also be repeated, e.g.
Send("{DEL 4}") ;Presses the DEL key 4 times
Send("{S 30}") ;Sends 30 'S' characters
Send("+{TAB 4}") ;Presses SHIFT+TAB 4 times
The key will be send at least once even if the count is zero.
To hold a key down (generally only useful for games)
Send("{a down}") ;Holds the A key down
Send("{a up}") ;Releases the A key
To set the state of the capslock, numlock and scrolllock keys
Send("{NumLock on}") ;Turns the NumLock key on
Send("{CapsLock off}") ;Turns the CapsLock key off
Send("{ScrollLock toggle}") ;Toggles the state of ScrollLock
If you wish to use a variable for the count, try
$n = 4
Send("+{TAB " & $n & "}")
If you wish to send the ASCII value A four times, then try
$x = Chr(65)
Send("{" & $x & " 4}")
Most laptop computer keyboards have a special Fn key. This key cannot be simulated.
Note, by setting the flag parameter to 1 the above "special" processing will be disabled. This is useful when you want to send some text copied from a variable and you want the text sent exactly as written.
For example, open Folder Options (in the control panel) and try the following:
@@StandardTable1@@
Send("{TAB}") Navigate to next control (button, checkbox, etc)
Send("+{TAB}") Navigate to previous control.
Send("^{TAB}") Navigate to next WindowTab (on a Tabbed dialog window)
Send("^+{TAB}") Navigate to previous WindowTab.
Send("{SPACE}") Can be used to toggle a checkbox or click a button.
Send("{+}") Usually checks a checkbox (if it's a "real" checkbox.)
Send("{-}") Usually unchecks a checkbox.
Send("{NumPadMult}") Recursively expands folders in a SysTreeView32.
@@End@@
Use Alt-key combos to access menu items. Also, open Notepad and try the following:
Send("!f") Send Alt+f, the access key for Notepad's file menu. Try other letters!
@@StandardTable1@@
Send("{DOWN}") Move down a menu.
Send("{UP}") Move up a menu.
Send("{LEFT}") Move leftward to new menu or expand a submenu.
Send("{RIGHT}") Move rightward to new menu or collapse a submenu.
@@End@@
See Windows' Help--press Win+F1--for a complete list of keyboard shortcuts if you don't know the importance of Alt+F4, PrintScreen, Ctrl+C, and so on.
When running a script on a remote computer through a program as psexec (www.sysinternals.com) or beyondexec (www.beyondlogic.org) it is necessary, specially when sending strokes to a program launch by the script with a Run function, to use <b>ControlSend</b> or other ControlXXX functions to directly communicate with the control. Send even with Opt("SendAttachMode",1) is not working.
Using the -s mode when submitting can help to have better right on the remote computer.
Opt("SendKeyDelay",...) alters the the length of the brief pause in between sent keystrokes.
Opt("SendKeyDownDelay",...) alters the length of time a key is held down before being released during a keystroke.
Set both "SendKeyDelay" and "SendKeyDownDelay" to 0 to remove all delays when sending keystrokes. This may be required under certain circumstances, for example, when locking the system ("#l") it may be necessary to remove the delays in order to prevent the WIN key from being stuck down.
###Related###
SendAttachMode (Option), SendKeepActive, SendKeyDelay (Option), SendKeyDownDelay (Option), ControlSend, BlockInput, HotKeySet, WinMenuSelectItem
###Example###
@@IncludeExample@@
Document traduit V3.3.6.1 :
###Function###
Send
###Description###
Simule l'appui sur une touche du clavier et envoi la valeur dans la fenêtre active.
###Syntax###
Send ( "keys" [, flag] )
###Parameters###
@@ParamTable@@
keys
La séquence de touches à envoyer.
flag
[optionnel] Change la manière dont les touches sont envoyées:
flag = 0 (défaut), Les caractères spéciaux comme + et ! sont utilisés pour indiquer les touches SHIFT et ALT
flag = 1, Les touches sont envoyées tels qu'elles.
@@End@@
###ReturnValue###
Aucune.
###Remarks###
Voir <a href="../appendix/SendKeys.htm">l'appendice</a> pour quelques astuces d'utilisation de Send. AutoIt peut envoyer tous les caractères ASCII et ASCII étendu (0-255).Pour envoyer des caractères UNICODE, vous devez utiliser l'option "ASC" et le code du caractère que vous voulez envoyer (Voir {ASC} au bas de la table ci-dessous).
La syntaxe de la commande "Send" est similaire à celle de ScriptIt et à celle de la commande "SendKeys" en Visual Basic.
Les caractères sont envoyés tels qu'ils sont écrits à l'exception des caractères suivants:
'!'
Ceci dit à AutoIt de simuler l'appui de la touche ALT. Par exemple, Send("Ceci est un texte!a") va envoyer les lettres "Ceci est un texte" puis presser "ALT+a".
Remarque : Certains programmes sont très difficiles quand à l'utilisation des lettres majuscules combinées avec l'appui sur ALT. Par exemple, "!A" est différent de "!a". Le premier code va envoyer ALT+SHIFT+A et le deuxième ALT+a. Si vous avez un doute, utilisez les minuscules.
'+'
Ceci dit à AutoIt de simuler l'appui de la touche SHIFT. Par exemple, Send("Hell+o") va envoyer les lettres "HellO", et Send("!+a") va envoyer "ALT+SHIFT+a".
'^'
Ceci dit à AutoIt de simuler l'appui de la touche CTRL. Par exemple, Send("^!a") va envoyer "CTRL+ALT+a".
Remarque : Certains programmes sont très difficiles quand à l'utilisation des lettres majuscules combinées avec l'appui sur CTRL. Par exemple, "!A" est différent de "!a". Le premier code va envoyer CTRL+SHIFT+A et le deuxième CTRL+a. Si vous avez un doute, utilisez les minuscules.
'#'
Ceci dit à AutoIt de simuler l'appui de la touche Windows. Par exemple, Send("#r") va envoyer Win+r qui va lancer l'invite de commande.
Vous pouvez utiliser SendCapslockMode pour désactiver le verrouillage majuscule au début de chaque utilisation de Send et le réactiver à la fin.
Cependant, si un utilisateur maintient l'appui sur SHIFT au démarrage de Send, le texte peut être envoyé en majuscule.
Une manière de contourner est d'utiliser Send("{SHIFTDOWN}{SHIFTUP}") avant les autres utilisations de Send.
Certains claviers comme le Tchèque envoient des caractères différents lors de l'appui sur la touche Shift ou pendant que le VERROUILLAGE MAJUSCULE est activé. En raison du fonctionnement de la fonction Send, (les caractères majuscules sont envoyés comme des minuscules affublées d'un SHIFT) <b>l'envoi des majuscules ne marchera pas</b>.
Certains caractères spéciaux peuvent être envoyés mais doivent être encadrés de crochets.
Remarque: Windows n'autorise pas la simulation de la combinaison "CTRL-ALT-DEL"!
@@StandardTable1@@
<b>Commande send (Si flag = 0)</b> <b>Caractères envoyés</b>
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{SPACE} Espace
{ENTER} Touche ENTRÉE du clavier principal
{ALT} ALT
{BACKSPACE} ou {BS} RETOUR ARRIÈRE
{DELETE} ou {DEL} SUPPRIMER
{UP} Flèche du haut
{DOWN} Flèche du bas
{LEFT} Flèche de gauche
{RIGHT} Flèche de droite
{HOME} HOME
{END} FIN
{ESCAPE} or {ESC} ÉCHAP
{INSERT} or {INS} INSÉRER
{PGUP} PageUp
{PGDN} PageDown
{F1} - {F12} Touches de fonctions
{TAB} Tabulation
{PRINTSCREEN} Impr. Écran
{LWIN} Touche Windows de gauche
{RWIN} Touche Windows de droite
{NUMLOCK on} Pavé Numérique (on/off/basculement)
{CAPSLOCK off} Verrouillage Majuscule (on/off/basculement)
{SCROLLLOCK toggle} SCROLLLOCK (on/off/basculement)
{BREAK} Pour Ctrl+Break du traitement
{PAUSE} PAUSE
{NUMPAD0} - {NUMPAD9} Chiffres du pavé numérique
{NUMPADMULT} Multiplication du pavé numérique
{NUMPADADD} Addition du pavé numérique
{NUMPADSUB} Soustraction du pavé numérique
{NUMPADDIV} Division du pavé numérique
{NUMPADDOT} Point du pavé numérique
{NUMPADENTER} Touche ENTRÉE du pavé numérique
{APPSKEY} Touche des applications Windows
{LALT} Alt gauche
{RALT} Alt droit
{LCTRL} Ctrl gauche
{RCTRL} Ctrl droit
{LSHIFT} Shift gauche
{RSHIFT} Shift droit
{SLEEP} Touche de mise hors tension de l'ordinateur
{ALTDOWN} Maintient appuyé la touche ALT jusqu'à l'envoi de la touche {ALTUP}
{SHIFTDOWN} Maintient appuyé la touche SHIFT jusqu'à l'envoi de la touche {SHIFTUP}
{CTRLDOWN} Maintient appuyé la touche CTRL jusqu'à l'envoi de la touche {CTRLUP}
{LWINDOWN} Maintient appuyé la touche Windows de gauche jusqu'à l'envoi de la touche {LWINUP}
{RWINDOWN} Maintient appuyé la touche Windows de droite jusqu'à l'envoi de la touche {RWINUP}
{ASC nnnn} Envoi la combinaison ALT+nnnn
{BROWSER_BACK} 2000/XP Seulement : Touche "retour" du navigateur
{BROWSER_FORWARD} 2000/XP Seulement : Touche "suivant" du navigateur
{BROWSER_REFRESH} 2000/XP Seulement : Touche "actualiser" du navigateur
{BROWSER_STOP} 2000/XP Seulement : Touche "stop" du navigateur
{BROWSER_SEARCH} 2000/XP Seulement : Touche "recherche" du navigateur
{BROWSER_FAVORITES} 2000/XP Seulement : Touche "favoris" du navigateur
{BROWSER_HOME} 2000/XP Seulement : Lance le navigateur internet sur la page d'accueil
{VOLUME_MUTE} 2000/XP Seulement : Coupe le son
{VOLUME_DOWN} 2000/XP Seulement : Réduit le volume du son
{VOLUME_UP} 2000/XP Seulement : Augmente le volume du son
{MEDIA_NEXT} 2000/XP Seulement : Sélectionne la prochaine chanson dans le lecteur Media Player
{MEDIA_PREV} 2000/XP Seulement : Sélectionne la chanson précédente dans le lecteur Media Player
{MEDIA_STOP} 2000/XP Seulement : Arrête la musique du lecteur Média Player
{MEDIA_PLAY_PAUSE} 2000/XP Seulement : Mets en pause/marche le son dans le lecteur Média Player
{LAUNCH_MAIL} 2000/XP Seulement : Lance la messagerie Internet
{LAUNCH_MEDIA} 2000/XP Seulement : Lancer le lecteur Média Player
{LAUNCH_APP1} 2000/XP Seulement : Lance l'application 1 définie par l'utilisateur
{LAUNCH_APP2} 2000/XP Seulement : Lance l'application 2 définie par l'utilisateur
@@End@@
Pour envoyer la valeur ASCII de A (identique à l'appui de ALT+065 sur le pavé numérique)
Send("{ASC 065}")
(Quand vous devez utiliser un codes ASCII à deux chiffres, vous devez mettre un 0 devant, sinon le code de page obsolète 437 est utilisé).
Pour envoyer des caractères UNICODE, entrez le code des caractères (décimale ou hexadécimal), par exemple pour envoyer un caractère chinois.
Send("{ASC 2709}") ou Send("{ASC 0xA95}")
Des touches seules peuvent aussi être répétées, comme dans les exemples ci-dessous.
Send("{DEL 4}") ; Envoyer la touche DEL 4 fois
Send("{S 30}") ; Envoyer 30 fois le caractère 'S'
Send("+{TAB 4}") ; Appuyer 4 fois sur SHIFT+TAB
Les touches sont envoyées au moins une fois même si le chiffre est 0.
Pour laisser une touche appuyée (généralement utile pour les jeux)
Send("{a down}") ; Laisse la touche 'a' appuyée
Send("{a up}") ; Libère la touche 'a'
Pour fixer l'état des touches 'Verrouillage Majuscule', 'Verrouillage Pavé numérique' et 'Arrêt défilement' :
Send("{NumLock on}") ; Change l'état du pavé numérique (NumLock) en on
Send("{CapsLock off}") ; Change l'état des majuscule (CapsLock) en off
Send("{ScrollLock toggle}") ; Bascule l'état de l'arrêt défilement (ScrollLock)
Si vous souhaitez utiliser une variable pour le nombre de répétition, essayez
$n = 4
Send("+{TAB " & $n & "}")
Si vous souhaitez envoyer la valeur ASCII 'A' 4 fois, essayez
$x = Chr(65)
Send("{" & $x & " 4}")
La plupart des ordinateurs portable possèdent une touche spéciale Fn. Cette touche ne peut être simulée.
Remarque: En fixant le paramètre à 1 les combinaisons 'spéciales' qui suivent ne seront pas actives. Ce paramètre est très utile quand vous voulez envoyer un texte copié d'une variable et que vous voulez envoyer le texte exactement comme il est écrit.
Par exemple, ouvrez 'Options des dossiers' (dans le panneau de configuration) et essayez ce qui suit :
@@StandardTable1@@
Send("{TAB}") Navigue au contrôle suivant (bouton, case à cocher, etc)
Send("+{TAB}") Navigue au contrôle précédent
Send("^{TAB}") Navigue à l'onglet suivant (en présence d'une fenêtre comportant des onglets)
Send("^+{TAB}") Navigue à l'onglet précédent
Send("{SPACE}") Peut être utilisé pour cocher une case ou valider un bouton
Send("{+}") Usuellement coche une case (si c'est une "réelle" case à cocher)
Send("{-}") Usuellement décoche une case.
Send("{NumPadMult}") Développe récursivement les répertoires d'un SysTreeView32.
@@End@@
Utiliser les combos avec Alt pour accéder aux objets des menus. Vous pouvez également ouvrir le bloc-notes et tester ceci :
Send("!f") Envoie Alt+f, permet d'accéder au menu 'Fichier' du bloc-notes. Essayez d'autres lettres!
@@StandardTable1@@
Send("{DOWN}") Descend dans le menu.
Send("{UP}") Monte dans le menu.
Send("{LEFT}") Va vers la gauche vers un nouveau menu ou développe un sous-menu.
Send("{RIGHT}") Va vers la droite vers un nouveau menu ou réduit un sous-menu.
@@End@@
Voir l'aide de Windows en appuyant sur Win+F1 pour une liste complète des raccourcis claviers si vous ne connaissez pas l'importance de Alt + F4, 'Imp Écran', Ctrl+C, et d'autres encore.
Quand un script est lancé sur un ordinateur distant à travers un programme tiers comme psexec (www.sysinternals.com) ou beyondexec (www.beyondlogic.org), il est nécessaire, spécialement en envoyant des touches à un programme lancé par le script via la fonction Run d'utiliser <b>ControlSend</b> ou d'autres fonctions ControlXXX pour communiquer avec le bon contrôle. Dans le cas contraire,l'envoi, même avec l'option Opt("SendAttachMode",1), ne marchera pas.
Utiliser le mode -s quand vous envoyez des touches peut vous aider à avoir un meilleur droit sur l'ordinateur distant.
Opt("SendKeyDelay",...) change la longueur de la pause entre 2 touches consécutives.
Opt("SendKeyDownDelay",...) change la longueur de la pause d'une touche enfoncée avant qu'elle ne soit libérée pendant une simulation.
###Related###
<a href="SendAttachmode.htm">SendAttachmode (Option)</a>, <a href="SendKeepActive.htm">SendKeepActive</a>, <a href="SendKeyDelay.htm">SendKeyDelay (Option)</a>, <a href="SendKeyDownDelay.htm">SendKeyDownDelay (Option)</a>, <a href="ControlSend.htm">ControlSend</a>
###Example###
@@IncludeExample@@
Traducteur : timmalos
Contributeurs (pour les modifications avant le Wiki) : Tlem