Page 1 sur 1

[R] Conditions sur String dans Fenêtre

Posté : mer. 15 déc. 2010 10:59
par lokomass
Bonjour,

Je suis en train de me faire un petit script pour le nettoyage et la sauvegarde de mon PC.
J'ai donc crée un petit bout de code qui me permet de lancer le nettoyage sans problème, seulement à la fin de celui-ci, deux solutions s'offrent :
- Si des erreur sont trouvées (on déroule une partie de code et les mots "Afficher les problèmes" sont sur la page)
- Sinon on déroule un autre code pour terminer
J'aimerais savoir comment poser ma condition "if" pour dire en gros :

Code : Tout sélectionner

Si tu trouve sur la fenetre la pharse "Afficher les problèmes" alors tu va dérouler telle partie de code, et si tu le trouve pas, et bien tu va faire telle partie
Le problème est aussi, je pense le temps d'attente, il faut attendre sur la même page "x temps", jusqu'à maintenant ma condition était d'attendre que "Afficher les problèmes" apparaisse, mais j'ai remarqué que quand y'a pas d'erreurs, cela n'apparait jamais.......


Bref voici le code, et merci de votre aide

Code : Tout sélectionner

run("C:\Program Files\TuneUp Utilities 2011\RegistryCleaner.exe")
winwait("TuneUp Registry Cleaner")
winactive("TuneUp Registry Cleaner")
Sleep(1000)
ControlClick("TuneUp Registry Cleaner", "", "[CLASS:TButton; INSTANCE:2]")
winwait("TuneUp Registry Cleaner","Afficher les problèmes")
winactive("TuneUp Registry Cleaner")
ControlClick("TuneUp Registry Cleaner", "", "[CLASS:TButton; INSTANCE:2]")
Sleep(1000)
Send("^s")
winwait("TuneUp Registry Cleaner")
winactive("TuneUp Registry Cleaner")
ControlClick("TuneUp Registry Cleaner", "", "[CLASS:TButton; INSTANCE:2]")
winwait("TuneUp Registry Cleaner","Terminer")
winactive("TuneUp Registry Cleaner")
ControlClick("TuneUp Registry Cleaner", "", "[CLASS:TButton; INSTANCE:2]")
Sleep(1000)
winclose("TuneUp Registry Cleaner")
Sleep(1000)
winclose("TuneUp Registry Cleaner")
 

Re: [..] Conditions sur String dans Fenêtre

Posté : mer. 15 déc. 2010 13:57
par DimVar
Bonjour,

J'ai eu le même genre de soucis pour un script. Pas de "flag" de fin de traitement, ou rien qu'Autoit ne pouvait intercepter comme fin de traitement.

Je suis donc passé par un logiciel tiers pour analyser le comportement du logiciel.
ProcessExplorer.

Il te permet de tracer toutes les actions effectué d'un point de vue système par un logiciel.
Tu peux voir (avec les bons filtres car il est très bavard) tous les fichiers manipulés, les clefs de registres modifiées, etc...
Du coup, on peut aisément trouver quelle sont les dernières actions d'un logiciel.

Cdlt.

Dimvar.

Re: [..] Conditions sur String dans Fenêtre

Posté : mer. 15 déc. 2010 14:24
par lokomass
J'ai finalement réussi en testant des choses :)

Voici le code :

Code : Tout sélectionner

run("C:\Program Files\TuneUp Utilities 2011\RegistryCleaner.exe")
winwait("TuneUp Registry Cleaner")
winactive("TuneUp Registry Cleaner")
Sleep(1000)
ControlClick("TuneUp Registry Cleaner", "", "[CLASS:TButton; INSTANCE:2]")
winactive("TuneUp Registry Cleaner")
$Prob1 = 1
While($Prob1 > 0)
    $Fini1 = WinGetText("TuneUp Registry Cleaner", "< &Précédent")
    $Prob1 = StringInStr($Fini1, "< &Précédent")
Wend
Sleep(1000)
$Fini2 = WinGetText("TuneUp Registry Cleaner")
$Prob2 = StringInStr($Fini2, "Terminer")
If ($Prob2 = 0) Then
    winwait("TuneUp Registry Cleaner","Afficher les problèmes")
    winactive("TuneUp Registry Cleaner")
    ControlClick("TuneUp Registry Cleaner", "", "[CLASS:TButton; INSTANCE:2]")
    winactive("TuneUp Registry Cleaner")
    sleep(1000)
    Send("^s")
    winwait("TuneUp Registry Cleaner")
    winactive("TuneUp Registry Cleaner")
    ControlClick("TuneUp Registry Cleaner", "", "[CLASS:TButton; INSTANCE:2]")
    winwait("TuneUp Registry Cleaner","Terminer")
    winactive("TuneUp Registry Cleaner")
    ControlClick("TuneUp Registry Cleaner", "", "[CLASS:TButton; INSTANCE:2]")
    winwait("TuneUp Registry Cleaner","Custom 1")
    winactive("TuneUp Registry Cleaner","Custom 1")
    Send("!{F4}")
Else
    ControlClick("TuneUp Registry Cleaner", "", "[CLASS:TButton; INSTANCE:2]")
    winwait("TuneUp Registry Cleaner","Custom 1")
    winactive("TuneUp Registry Cleaner","Custom 1")
    Send("!{F4}")
Endif