[..] Créer une boucle plus une exécution

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
franky
Niveau 1
Niveau 1
Messages : 6
Enregistré le : ven. 09 nov. 2012 11:19
Status : Hors ligne

[..] Créer une boucle plus une exécution

#1

Message par franky »

Bonjour à tous, afin de comprendre le langage autoit je fais des tests en créant des petits scripts et j'aurais besoin de votre aide car je n'ai pas trouvé de solution sur le forum :oops:

J'aimerais créer une boucle qui contrôle plusieurs fenêtres, admettons j'ai trois blocs notes ouverts, est-il possible que le script voie ces trois fenêtres en permanence? et si une fenetre ce ferme exécuter une commande run pour ouvrir un nouveau bloc?
Pour le moment j'en suis là (on ne rigole pas j'essaye de comprendre)mais évidement sa ne fonctionne pas :cry: .

Code : Tout sélectionner

$notepad= "notepad.exe"
$i = 0 
While $i <= 1
WinWaitActive("Sans titre - Bloc-notes")
WinWaitClose("Sans titre - Bloc-notes")
Run($notepad)
WEnd
je m'excuse si je me suis mal exprimé c'est clair dans ma tete mais pas forcément pour vous, excuser aussi mon français ce n'est pas ma langue d'origine mais j'ai essayé de m'appliquer je vous remercie pour votre aide.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#2

Message par sylvanie »

En restant dans l'esprit initiation, je ferai ainsi :
► Afficher le texte
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#3

Message par mikell »

sylvanie, elle est pas redondante ta 2ème boucle While ? pour s'abstraire du sleep on pourrait pas juste faire ça ?

Code : Tout sélectionner

$notepad= "notepad.exe"

While 1
    $ctrl = WinList("Sans titre - Bloc-notes")
    If $ctrl[0][0] < 3 Then 
          Run($notepad)
          ContinueLoop
    EndIf
    Sleep(1000)
WEnd
" 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
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#4

Message par sylvanie »

Oui, là je n'ai pas vraiment pensé optimisation... on est un peu dans du code d’apprentissage-jetable...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
franky
Niveau 1
Niveau 1
Messages : 6
Enregistré le : ven. 09 nov. 2012 11:19
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#5

Message par franky »

Merci pour votre aide :wink: par contre ça ne fonctionne pas, ça ouvre des blocs notes en boucle :lol: .
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#6

Message par sylvanie »

LA raison est que tu dois être sous win 7 ou Vista, et le que le titre du bloc note est :
Sans titre - Bloc-notes avec; en binaire un 0xa0 devant le 0x2d et non 0x20
concrètement :
1) lance un bloc note
2) lance l'outil au3info depuis le menu tools de Scite (il faut que le fichier en cours d'édition soit un .au3)
3) déplace la cible sur le bloc note
4) fait un click gauche sur le champs title de l'onglet Window de l'outil a3info puis ctrl+c
5) fait un coller dans ton script

Visuellement tu ne verras rien, mais binairement la différence est là ^^
Les joies de l'encodage ...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#7

Message par mikell »

Il me semble qu'un

Code : Tout sélectionner

Opt("WinTitleMatchMode", -2)
.....
$ctrl = WinList("Bloc-notes")
pourrait marcher... :wink:
" 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
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#8

Message par sylvanie »

la facilité au côté obscure de la force mène !
Image
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#9

Message par mikell »

... mais elle à toi les prises de tête épargne !
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
franky
Niveau 1
Niveau 1
Messages : 6
Enregistré le : ven. 09 nov. 2012 11:19
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#10

Message par franky »

Bonjour à tous et merci pour votre aide, effectivement mon problème venait de w7 ça fonctionne à merveille j'ai pu faire un canular à ma compagne avec des mots doux dans ces blocs note, marrant cinq minutes mais sa la vite rendue dingue :mrgreen: .

J'ai une dernière question après je ne vous embête plus ça me fera pas mal de travail à étudier et à comprendre, si je souhaite à la fin de la boucle faire une vérification par pixel et lui demander d'attendre que le pixel disparaisse pour reprendre la boucle cela est-il possible?

J'ai pu voir dans la manuelle comment identifier l'adresse et la couleur grasse à win info mais je ne sais pas trop comment l'introduire dans la boucle, je suis actuellement en train de lire le manuel mais ce dernier et long et extrêmement complexe il va me falloir un peu de temps pour y venir à bout en tout cas merci pour votre aide.

Vos êtes mes pères :lol:
Image
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Créer une boucle plus une exécution

#11

Message par mikell »

franky a écrit : si je souhaite à la fin de la boucle faire une vérification par pixel et lui demander d'attendre que le pixel disparaisse pour reprendre la boucle cela est-il possible?
Probablement mais c'est tout à fait taré pervers déjanté excessif
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre