[R] Conditions sur String dans Fenêtre

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

[R] Conditions sur String dans Fenêtre

#1

Message 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")
 
Modifié en dernier par lokomass le mer. 15 déc. 2010 14:24, modifié 1 fois.
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

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

#2

Message 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.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

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

#3

Message 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
 
Répondre