Page 1 sur 1
[..] Contrôle du contenu texte d'une fenêtre
Posté : mer. 03 mars 2010 10:21
par yannard
Bonjour,
J'aimerais savoir s'il est possible de contrôler dans une fenêtre, à un endroit bien précis, si un texte spécifique est affiché ?
En fait je voudrais tester le contenu d'un résultat d'exécution d'une application
Merci pour votre aide
Re: [..] Contrôle du contenu texte d'une fenêtre
Posté : mer. 03 mars 2010 23:10
par Tlem
http://www.autoitscript.fr/autoit3/docs ... au3spy.htm
Vous aidera à connaitre les information concernant la fenêtre et le contrôle.
Il vous suffira ensuite d'utiliser les informations obtenue pour aller chercher automatiquement l'information que vous recherchez.
Re: [..] Contrôle du contenu texte d'une fenêtre
Posté : jeu. 04 mars 2010 11:43
par scorp84
Bonjour,
yannard : Voici un bout de code que j'ai écrit pour mon boulot. J'ai un programme pour des transferts de fichiers XML qui m'informe de l'état de connexion du serveur (Connecté ou Déconnecté).
Avec l'outil que t'a indiqué Tlem, j'ai réussi à récupérer l'état du bouton qui me donne l'info et de la mettre dans une variable pour ensuite l'envoyer par email.
J'ai juste rajouté une pause de 10 secondes et un nouveau test avant de mémoriser l'état pour le cas où le serveur n'aurait pas encore eu le temps de se connecter.
Ensuite, je teste si le programme est bien lancé et je stocke le résultat dans une variable pour pouvoir ensuite l'envoyer par email.
Voici le code :
► Afficher le texte
Code : Tout sélectionner
; Attends la fenêtre du programme
WinWait("AXML Partner")
; Pause de 10 secondes pour attente connexion
Sleep(10000)
; Active la fenêtre du programme
WinActivate ("AXML Partner")
; Récupère l'état du bouton voulu
$etat = ControlGetText("AXML Partner","", "[CLASS:TPanel; INSTANCE:4]")
; Pause de 10 seconde et 2ème test si pas encore connecté
If $etat<>"Connecté" Then
Sleep(10000)
$etat = ControlGetText("AXML Partner","", "[CLASS:TPanel; INSTANCE:4]")
EndIf
; Détecte si le programme est bien relancé
$prg_exe="AXML.exe"
$PID = ProcessExists($prg_exe)
; Msg dans log selon état prg
If $PID Then
$log_txt="Programme " & $prg_exe & " redémarré avec succès (état : " & $etat & ")"
Else
$log_txt="ECHEC : Programme " & $prg_exe & " non redémarré"
EndIf
En espérant que cela puisse t'aider.
Amicalement.
BM