Page 1 sur 1

Condition dans un champ

Posté : jeu. 19 janv. 2017 14:56
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

Re: Condition dans un champ

Posté : jeu. 19 janv. 2017 16:08
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

Re: Condition dans un champ

Posté : jeu. 19 janv. 2017 17:28
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:

Re: Condition dans un champ

Posté : ven. 20 janv. 2017 08:15
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

Re: Condition dans un champ

Posté : ven. 20 janv. 2017 14:36
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...........

Re: Condition dans un champ

Posté : lun. 23 janv. 2017 09:10
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

Re: Condition dans un champ

Posté : jeu. 26 janv. 2017 11:07
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)

Re: Condition dans un champ  

Posté : lun. 30 janv. 2017 15:16
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