Functions > Keyboard >


Send

Envoie des frappes clavier simul�es � la fen�tre active.

Send ( "keys" [, flag = 0] )

Param�tres

keys La s�quence de touches � envoyer.
flag [optionnel] Change la mani�re dont les touches sont envoy�es:
    $SEND_DEFAULT (0) = Le texte contient des caract�res sp�ciaux comme + et ! qui sont utilis�s pour indiquer les touches SHIFT et ALT (d�faut).
    $SEND_RAW (1) = Les touches sont envoy�es telles quelles.

Les constantes sont d�finies dans "AutoItConstants.au3".

Valeur de retour

Aucune.

Remarques

Consultez l'Appendice pour quelques conseils 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" de Visual Basic. Les caract�res sont envoy�s tels qu'ils sont �crits � l'exception des caract�res suivants:

'!'
Ce caract�re dit � AutoIt de simuler l'appui de la touche ALT. Par exemple, Send("Ceci est un texte!a") va envoyer les touches "Ceci est un texte" puis presser "ALT+a".

Note: 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 dit ALT+SHIFT+A et le deuxi�me ALT+a. Si vous avez un doute, utilisez les minuscules!

'+'
Ce caract�re dit � AutoIt de simuler l'appui de la touche SHIFT. Par exemple, Send("Hell+o") va envoyer le texte "Hello", et Send("!+a") va envoyer "ALT+SHIFT+a".

'^'
Ce caract�re dit � AutoIt de simuler l'appui de la touche CTRL. Par exemple, Send("^!a") va envoyer "CTRL+ALT+a".

Note: 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 dit CTRL+SHIFT+A et le deuxi�me CTRL+a. Si vous avez un doute, utilisez les minuscules.

'#'
Ce caract�re dit � AutoIt de simuler l'appui de la touche Windows. Par exemple, Send("#r") va envoyer Win+r qui va lancer la bo�te de dialogue 'Ex�cuter' de Windows.


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 la fonction 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 clavier 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) l'envoi des majuscules ne marchera pas.
Certains caract�res sp�ciaux peuvent �tre envoy�s mais doivent �tre encadr�s de crochets.

Note: Windows n'autorise pas la simulation de la combinaison "CTRL-ALT-DEL"!

Commande Send() (Si flag = 0) Caract�res envoy�s
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{SPACE} Espace
{ENTER} Touche ENTR�E du clavier principal
{ALT} ALT
{BACKSPACE} ou {BS} Touche RETOUR ARRI�RE
{DELETE} ou {DEL} Touche SUPP
{UP} Fl�che haut
{DOWN} Fl�che bas
{LEFT} Fl�che gauche
{RIGHT} Fl�che droite
{HOME} HOME
{END} FIN
{ESCAPE} or {ESC} Touche �CHAP
{INSERT} or {INS} Touche INS
{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/toggle)
{CAPSLOCK off} Verrouillage Majuscule (on/off/toggle)
{SCROLLLOCK toggle} SCROLLLOCK (on/off/toggle)
{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} S�lectionne le bouton "Arri�re" du navigateur
{BROWSER_FORWARD} S�lectionne le bouton "Avant" du navigateur
{BROWSER_REFRESH} S�lectionne le bouton "actualiser" du navigateur
{BROWSER_STOP} S�lectionne le bouton "stop" du navigateur
{BROWSER_SEARCH} S�lectionne le bouton "recherche" du navigateur
{BROWSER_FAVORITES} S�lectionne le bouton "favoris" du navigateur
{BROWSER_HOME} Lance le navigateur internet sur la page d'accueil
{VOLUME_MUTE} Coupe le son
{VOLUME_DOWN} R�duit le volume du son
{VOLUME_UP} Augmente le volume du son
{MEDIA_NEXT} S�lectionne la prochaine piste dans le lecteur Media Player
{MEDIA_PREV} S�lectionne la piste pr�c�dente dans le lecteur Media Player
{MEDIA_STOP} Arr�te la musique du lecteur M�dia Player
{MEDIA_PLAY_PAUSE} Met en pause/marche le son dans le lecteur M�dia Player
{LAUNCH_MAIL} Lance la messagerie Internet
{LAUNCH_MEDIA} Lance le lecteur M�dia Player
{LAUNCH_APP1} Lance l'application 1 d�finie par l'utilisateur
{LAUNCH_APP2} Lance l'application 2 d�finie par l'utilisateur
{OEM_102} Either the angle bracket key or the backslash key on the RT 102-key keyboard

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 code 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�cimal 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

Aucune touche n'est envoy�e si le nombre est 0, ce qui permet de d�finir ce nombre par programme:
    Send("{M " & $iCount & "}") ;Presse la touche M plusieurs fois suivant le contenu de la variable $iCount.


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 pas �tre simul�e.

Note: En fixant le param�tre � 1 les combinaisons 'sp�ciales' qui suivent seront d�sactiv�s. 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, dans le panneau de configuration, ouvrez 'Options des dossiers' et essayez ce qui suit :

Send("{TAB}") Navigue au contr�le suivant (button, checkbox, etc)
Send("+{TAB}") Navigue au contr�le pr�c�dent.
Send("^{TAB}") Navigue � l'onglet suivant (fen�tre de dialogue � onglet)
Send("^+{TAB}") Navigue � l'onglet pr�c�dent.
Send("{SPACE}") Peut �tre utilis� pour commuter un 'checkbox' ou cliquer un 'button'.
Send("{+}") Typiquement, coche un 'checkbox' (si il est un "r�el" checkbox.)
Send("{-}") Typiquement, d�coche un 'checkbox'.
Send("{NumPadMult}") D�veloppe r�cursivement les r�pertoires d'un 'SysTreeView32'.

Utilisez les 'combos' avec la touche Alt pour acc�der aux �l�ments du menu. Vous pouvez �galement ouvrir le bloc-notes et tester ceci:
Send("!f") Send() Alt+f, la touche d'acc�s au menu 'Fichier' du Bloc-notes. Essayez d'autres lettres!

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.


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 ControlSend() ou d'autres fonctions ControlXXX pour communiquer directement avec le contr�le. Send() m�me avec Opt("SendAttachMode", 1) ne fonctionnera pas.
Utilisez le mode -s quand vous envoyez des touches peut vous aider � avoir des meilleurs droits sur l'ordinateur distant.

Opt("SendKeyDelay",...) change la longueur de la pause entre les 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.
D�finissez "SendKeyDelay" et "SendKeyDownDelay" � 0 pour enlever tous les d�lais lors de l'envoi de touches. Cela peut �tre n�cessaire dans certaines circonstances, par exemple, lors du verrouillage du syst�me ("#l"), il peut �tre n�cessaire d'enlever les d�lais afin de pr�voir une touche WIN rest�e enfonc�e.

En relation

BlockInput, ControlSend, HotKeySet, SendAttachMode (Option), SendKeepActive, SendKeyDelay (Option), SendKeyDownDelay (Option), WinMenuSelectItem

Exemple

Example()

Func Example()
    ; Simule la combinaison de touches Win + R pour ouvrir la fen�tre de dialogue Ex�cuter.
    Send("#r")

    ; Attend 10 secondes que la fen�tre de dialogue Ex�cuter appara�t.
    WinWait("Run", "", 10)

    ; Simule une entr�e dans notepad.exe et presse la touche 'ENTER'.
    Send("notepad.exe{Enter}")

    ; Attend 10 secondes pour que la fen�tre du bloc-notes apparaisse.
    Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)

    ; Simule l'entr�e de la cha�ne suivante et appuie sur la touche "F5" pour entrer la date et l'heure dans le contr�le d'�dition du bloc-notes.
    Send("Date et heure d'aujourd'hui: {F5}")

    ; Ferme la fen�tre du Bloc-notes en utilisant le handle retourn� par WinWait.
    WinClose($hWnd)

    ; Maintenant, une fen�tre s'ouvrira et demandera d'enregistrer les modifications, le nom de classe de la fen�tre est
    ;"#32770" et la simulation de la touche "TAB" pour passer au deuxi�me bouton dans lequel le "ENTER" est simul� pour ne pas "Enregistrer le fichier"
    WinWaitActive("[CLASS:#32770]")
    Sleep(500)
    Send("{TAB}{ENTER}")
EndFunc   ;==>Example