Condition dans un champ

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
yohanb767
Niveau 5
Niveau 5
Messages : 117
Enregistré le : mer. 28 déc. 2016 14:09
Status : Hors ligne

Condition dans un champ

#1

Message par yohanb767 »

Bonjour à tous !

je bute sur un point depuis quelque jours

Dans une fenêtre nommée "Gestion des avis de réception: écran initial" j'aimerai que le script vérifie si la valeur " 1001707 "est inscrite dans le champ [CLASS:Button; INSTANCE:2] en permanence et que si la valeur et bien 1001707 alors simuler un appui sur la touche F11 sinon F12

je précise que le script dois être actif en permanence afin de vérifier cette condition

j'espère que quelqu'un pourra m'aider merci beaucoup
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Condition dans un champ

#2

Message par mikell »

je bute sur un point depuis quelque jours
Vu le reste de ton message, il semblerait que ce point ça soit en fait "écrire un script" Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 140
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: Condition dans un champ

#3

Message par A2Energie »

Pourrais tu nous fournir ce que tu as déjà fais comme travail.

Nous pourrons ainsi t'aider à résoudre un problème que tu rencontre dans l'écriture de ton script ou t'indiquer ou chercher la solution.
Mais nous ne pourrons pas faire l'ensemble du travail a ta place.

Car c'est en cherchant qu'on devient chercheur :lol:
yohanb767
Niveau 5
Niveau 5
Messages : 117
Enregistré le : mer. 28 déc. 2016 14:09
Status : Hors ligne

Re: Condition dans un champ

#4

Message par yohanb767 »

pour le moment j'arrive à mettre le focus sur champs

ControlClick("Gestion des avis de réception: écran initial", "", "[CLASS:Button; INSTANCE:2]")

ce qui me gêne c'est que je connais comment déclarer un variable mais que lorsque j'écris un script
hors là ce sont des infos que j'ai récupérer via le code de Jguich qui permet d'avoir toutes les info nécessaire sur les champs de la fenêtre qui m’intéresse (chose que Win Info ne me donne pas)

j'aime chercher cela n'est pas le soucis mais je n'est pas de piste pour mettre mais infos contenu dans le champ [CLASS:Button; INSTANCE:2] en variable

à partir de la je pourrai me débrouiller
merci
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: Condition dans un champ

#5

Message par walkson »

Bonjour,
Quelque chose comme ça ?
HotKeySet ( "!x" , "_exit" );alt x

AdlibRegister("action",500)
While 1
Sleep(100)

WEnd

Func _exit()
Exit
EndFunc
Func action()
$text = ControlGetText("Gestion des avis de réception: écran initial", "", "[CLASS:Button; INSTANCE:2]")
ToolTip($text,50,100)
If $text = 1001707 Then
   MsgBox(0,"",'Send("{F11}"',1)
Else
   MsgBox(0,"",'Send("{F12}"',1)
EndIf

EndFunc
j'ai mis les Send() dans un Msgbox sinon...........
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
yohanb767
Niveau 5
Niveau 5
Messages : 117
Enregistré le : mer. 28 déc. 2016 14:09
Status : Hors ligne

Re: Condition dans un champ

#6

Message par yohanb767 »

Merci Walkson !

mais je n'arrive pas a faire ce que je veux hélas
déjà le script ne lis pas le champ mais je pense qu'il y a un soucis avec ma class et mon instance
j'essaye de faire marcher ce script sur le logiciel (SAP) j'ai utilisé le code de Jguich pour avoir toutes les info de la fenêtre en question

le champs que je veux utiliser pour le script et dans l'un de ces quatres class et instance
[CLASS:Button; INSTANCE:1]
[CLASS:Button; INSTANCE:2]
[CLASS:Button; INSTANCE:3]
[CLASS:Button; INSTANCE:4]

le soucis c'est que quand je fais un ControlGetFocus avec l'un de ces quatre cela me donne le focus toujours sur le même champ
sur les 4 que je vois dans ma fenêtre

je me demande si il n'y a pas un moyen de cibler un peu plus le champ avec les informations que j'ai récupéré avec le code de Jguich


Class Classname NN Advanced Mode Handle ID Position in Windows Size Position in Screen
Button Button1 [CLASS:Button; INSTANCE:1] 0x0004080C 150 X=10 ; Y=77 W=89 ; H=20 X=0 ; Y=984|1
Button Button2 [CLASS:Button; INSTANCE:2] 0x0001082A 146 X=34 ; Y=77 W=20 ; H=20 0
Button Button3 [CLASS:Button; INSTANCE:3] 0x0001082C 110 X=58 ; Y=77 W=6 ; H=20||0
Button Button4 [CLASS:Button; INSTANCE:4] 0x0001082E 147 X=68 ; Y=77 W=20 ; H=20||0
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 140
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: Condition dans un champ

#7

Message par A2Energie »

Bonjour,

Pourrais tu essayer ceci ?
$TitreFenetre = "Gestion des avis de réception: écran initial"
$HdlFenetre = ""
If WinExists($TitreFenetre , "") Then $HdlFenetre = WinGetHandle($TitreFenetre, "")
If Not IsHWnd($HdlFenetre) Then Msgbox(0, "Probleme", "La fenetre n'est pas détectée")

$text1 = ControlGetText($HdlFenetre, "", "[CLASS:Button; INSTANCE:1]")
$text2 = ControlGetText($HdlFenetre, "", "[CLASS:Button; INSTANCE:2]")
$text3 = ControlGetText($HdlFenetre, "", "[CLASS:Button; INSTANCE:3]")
$text4 = ControlGetText($HdlFenetre, "", "[CLASS:Button; INSTANCE:4]")
Msgbox(0, "Texte de mes champs", "Champ 1 : " & $text1 & @CRLF & "Champ 2 : " & $text2 & @CRLF & "Champ 3 : " & $text3 & @CRLF & "Champ 4 : " & $text4)
yohanb767
Niveau 5
Niveau 5
Messages : 117
Enregistré le : mer. 28 déc. 2016 14:09
Status : Hors ligne

Re: Condition dans un champ  

#8

Message par yohanb767 »

Merci A2Energie !

ça ne me met rien dans Champs 1 2 3 4 mais cela me donne une piste pour tester avec d'autre Class que contient mes informations
je test et je tiens au courant

Merci
Répondre