[R] Probleme avec l'écriture du contenu d'une variable

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
genaille08
Niveau 4
Niveau 4
Messages : 93
Enregistré le : sam. 03 mai 2008 01:27
Status : Hors ligne

[R] Probleme avec l'écriture du contenu d'une variable

#1

Message par genaille08 »

j'ai fait un code avec une gui qui présente une gui avec un input
le problème est que le script doit démarré un programme et écrire dedans le contenu de l'input, mais il n'écrit que la première lettre
pourquoi ???

Code : Tout sélectionner

#include <GUIConstants.au3>
AutoItSetOption("SendKeyDownDelay", 100)

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 165, 96, 193, 125)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 145, 21)
$Button1 = GUICtrlCreateButton("Button1", 24, 40, 113, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Select
        Case $nMsg = $GUI_EVENT_CLOSE
            Exit
            
        Case $nMsg = $Button1
            fonction1()

    EndSelect
WEnd

Func fonction1()
    Send ( "#r" )
    Sleep ( 1000)
    WinWaitActive("Exécuter")
    Sleep ( 1000 )
    Send("notepad.exe{Enter}")
    Sleep ( 1000 )
    winWaitActive("Sans titre -")
    Send ("{"&$Input1&"}")
EndFunc
 
Modifié en dernier par genaille08 le lun. 26 mai 2008 18:23, modifié 1 fois.
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Probleme avec l'écriture du contenu d'une variable

#2

Message par Voodoo »

Ceci GUICtrlCreateInput("Input1", 8, 8, 145, 21) retourne un controlID. C'est l'identifiant du champ input. Rien à voir avec ce qu'il y a dedans !

Pour lire un champ il faut utiliser guictrlread()

Ensuite la syntax Send ("{"& $Input1 & "}") trompe Autoit3. Car les chaines de caractéres entre accolades {} sont reservées aux commandes speciales. Comme {Enter}.

Essaye ceci :

Code : Tout sélectionner

#include <GUIConstants.au3>
;~ AutoItSetOption("SendKeyDownDelay", 100)

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 165, 96, 193, 125)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 145, 21)
$Button1 = GUICtrlCreateButton("Button1", 24, 40, 113, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Select
        Case $nMsg = $GUI_EVENT_CLOSE
            Exit
           
        Case $nMsg = $Button1
            fonction1()

    EndSelect
WEnd

Func fonction1()
    Send ( "#r" )
    Sleep ( 1000)
    WinWaitActive("Exécuter")
    Sleep ( 1000 )
    Send("notepad.exe{Enter}")
    Sleep ( 1000 )
    winWaitActive("Sans titre -")
    Send (GUICtrlRead ($Input1))
EndFunc
 
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: [..] Probleme avec l'écriture du contenu d'une variable

#3

Message par Ahbadiane »

Bonjour,

Pour envoyer les caractères réservés avec Send(), il faut rajouter le Flag à 1 (mode brut - voir l'aide)
La ligne devient donc : Send ("{" & GUICtrlRead($Input1) & "}", 1)
genaille08
Niveau 4
Niveau 4
Messages : 93
Enregistré le : sam. 03 mai 2008 01:27
Status : Hors ligne

Re: [..] Probleme avec l'écriture du contenu d'une variable

#4

Message par genaille08 »

ok beh merci pour vos réponse rapide
j'essayerais ce soir
Répondre