[R] Problème avec send d'une variable

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
tomasomalley
Niveau 3
Niveau 3
Messages : 49
Enregistré le : jeu. 08 avr. 2010 16:28
Status : Hors ligne

[R] Problème avec send d'une variable

#1

Message par tomasomalley »

Bonjour à toutes et à tous ainsi qu' à Sylvanie (qui m'a bien dépanné ces derniers jours je fais un peu de lèche, c'est po bo !!)
Voici mon soucis du moment, je suis en train de travailler sur une automatisation avec SEND, pour résumer sans raconter ma vie, le but est d'ouvrir une application hta et de remplir des champs à partir d'un fichier texte de datas (je prend le focus sur mon hta, je fais 4 tabulations, j'écris la première ligne d'un fichier texte, Enter, je double clic à un emplacement précis, je fais 12 tabulations, j'écris la deuxième ligne de mon fichier texte, Enter ... et je continu comme ça avec la troisième ligne de mon fichier txt.... etc) en gros c'est le principe.
Le soucis viens de l'écriture de ma variable (cf : code ci dessous) je ne comprend pas pourquoi, il ne m'écrit que la première lettre de la ligne que je veux lui donner à manger (exemple, ma ligne c'est :"turlututu" il ne m'écris que "t") ?? si cela parle à quelqu'un... je suis preneur
bonne journée à tous
Tomas

Code : Tout sélectionner

$file = FileOpen("liste.txt", 0)            ; mon fichier texte de datas
While 1                                     ; début de ma boucle
    $linetoread = FileReadLine( $file )
MsgBox(4096, "visualisation", $linetoread  , 1)     ; pour tester qu'il me lit bien la ligne entière
WinActivate("nom de ma fenêtre hta", "")           ; donne le focus sur ma fenêtre, ça fonctionne
Sleep(1000)
Send("{TAB 4}")                                     ; 4 tabulations, ça fonctionne
Sleep(1000)
Send("{"&$linetoread&"}")   ; Send ("texte en dur") fonctionne mais Send("{"&$linetoread&"}") ne m'écrit que la première lettre de la ligne ??
Sleep(1000)
Send("{ENTER}")
Sleep(1000)
MouseClick("left", 36, 235, 2, 5)               ; simuler un double clic, fonctionne
Sleep(1000)
Send("{TAB 12}")
Sleep(1000)
$linetoread = FileReadLine( $file )                 ; idem, première lettre de la ligne ??
Sleep(1000)
Send("{"&$linetoread&"}")
Sleep(1000)
Send("{ENTER}")
Sleep(1000)

    If @error = -1 Then ExitLoop

    If $linetoread = "fin" Then             ; j'écris fin à la fin de mon fichier datas
        FileClose($file)

        Exit

    EndIf
Wend

FileClose($file)
 
Modifié en dernier par tomasomalley le ven. 22 avr. 2011 10:04, modifié 1 fois.
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [..] problème avec send d'une variable

#2

Message par Ahbadiane »

Bonjour,

Pourquoi ajoutes-tu des { } dans ton send() ?
Pour avoir un texte en dur utilise plutôt le flag à 1 : send("toto", 1)
tomasomalley
Niveau 3
Niveau 3
Messages : 49
Enregistré le : jeu. 08 avr. 2010 16:28
Status : Hors ligne

Re: [..] problème avec send d'une variable

#3

Message par tomasomalley »

bonjour Ahbadiane
et bien, sur ce même forum j'ai trouvé un topic qui me disait que c'est ce qu'il faut faire.
En fait je ne veux pas mettre en dur le send,
c'est une variable que je send, c'est à priori comme cela que ça fonctionne
sauf que dans mon cas, il n'y a que la première lettre de ma variable qui est "prise"
??
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [..] problème avec send d'une variable

#4

Message par Ahbadiane »

As-tu essayé sans {} ? : Send($linetoread)
Les {} servent à envoyer des commandes, comme ta ligne précédente Send("{TAB 4}")
Regarde l'aide de la fonction Send()
tomasomalley
Niveau 3
Niveau 3
Messages : 49
Enregistré le : jeu. 08 avr. 2010 16:28
Status : Hors ligne

Re: [..] [R] Problème avec send d'une variable

#5

Message par tomasomalley »

Bravo Ahbadiane
ça fonctionne !
Je te remercie grandement
Tomas
Répondre