Functions > Window > Controls >


ControlSend

Envoie une cha�ne de caract�re � un contr�le.

ControlSend ( "title", "text", controlID, "string" [, flag = 0] )

Param�tres

title Le titre/hWnd/class de la fen�tre � atteindre. Consultez D�finition sp�ciale de titre.
text Le texte de la fen�tre � atteindre. Consultez D�finition sp�ciale de texte.
controlID Le contr�le avec lequel interagir. Consultez Controls.
string Cha�ne de caract�res � envoyer au contr�le.
flag [optionnel] Change la mani�re de traiter les "touches":
    0 = (d�faut) Texte contenant des caract�res sp�ciaux tel que + et ! pour indiquer que les touches SHIFT et ALT sont press�es.
    1 = les touches sont envoy�es en mode raw (tel quel).

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

Valeur de retour

Succ�s: Retourne 1.
�chec: Retourne 0 si la fen�tre/le contr�le n'est pas trouv�.

Remarques

ControlSend() fonctionne de mani�re similaire � Send, mais il peut envoyer des appuis de touche directement � une fen�tre ou un contr�le, au lieu de la fen�tre active seulement.

ControlSend() est instable pour les fen�tres de commande (DOS) car elles fonctionnent diff�remment d'une fen�tre normale (Semble v�rifier l'�tat physique plut�t qu'accepter les messages de frappe clavier). Pour une fen�tre normale, ControlSend() devrait �tre plus fiable, qu'un Send() normal. Et oui, il envoie Shift, Ctrl, Alt etc.

Comme il est mentionn� dans l'aide de Send(), un clavier qui envoie des caract�res diff�rents lorsque CAPS LOCK et la touche Shift sont utilis�e ne peut �tre simul� (le clavier Tch�que par exemple). Une bonne mani�re de contourner le probl�me, est d'utiliser ControlSetText().

Le contr�le peut en premier avoir besoin du focus avec la fonction ControlFocus(), sp�cialement lorsqu'il se r�f�re � un controlID cr�er par le script lui-m�me.

Opt("SendKeyDelay",...) modifie la dur�e de la pause entre les envois de touches.
Opt("SendKeyDownDelay",...) modifie la dur�e de maintien d'une touche avant qu'elle ne soit rel�ch�e pendant une frappe clavier.

En relation

ControlCommand, ControlFocus, ControlSetText, Send, SendKeyDelay (Option), SendKeyDownDelay (Option)

Exemple

Example()

Func Example()
    ; Ex�cute le Bloc-notes
    Run("notepad.exe")

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

    ; Attend 2 secondes.
    Sleep(2000)

    ; Envoie une cha�ne de texte au contr�le d'�dition du Bloc-notes. Le handle retourn� par WinWait est utilis� pour le param�tre "titre" de ControlSend.
    ControlSend($hWnd, "", "Edit1", "This is some text")

    ; Attend 2 secondes.
    Sleep(2000)

    ; 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 appel�
    ; "#32770" et en simulant la touche "TAB" pour passer au deuxi�me bouton dans lequel "ENTER" est simul� pour ne pas "enregistrer le fichier"
    WinWaitActive("[CLASS:#32770]")
    Sleep(500)
    Send("{TAB}{ENTER}")
EndFunc   ;==>Example