[..] Mettre en pause un autre script

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

[..] Mettre en pause un autre script

#1

Message par yohan8 »

Bonjour,

J'ai un premier script qui effectue une boucle pour vérifier une variable.
Pendant ce temps un autre script s'effectue.

Dés que cette variable change de valeur, j'aimerais que le premier script mette en pause le deuxième script. De la même méthode lorsqu'un script est lancé et que nous cliquons sur l’icône avec par la suite la possibilité de fermer le script ou de le relancer :
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: [..] Mettre en pause un autre script

#2

Message par mikell »

" 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
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Mettre en pause un autre script

#3

Message par yohan8 »

Nop sa a pas l'aire de fonctionner sous xp..

C'est vraiment essayer d'obtenir le même résultat qu'en cliquant sur l’icône comme sur l'image.
On peut le faire avec ImageSearch mais c'est vraiment bancale comme solution..

Par défaut TrayAutoPause est à 1 (Script pauses when click on tray icon).
Ce que j'aimerais savoir c'est si il y a un moyen de mettre en pause autrement que par un click à l'aide d'un autre script.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Mettre en pause un autre script

#4

Message par Tlem »

Votre test à t-il été fait sur le script compilé ?

Pourquoi ne pas inclure dans le script qui doit ce mettre en pause, une fonction de surveillance d'une variable (clé de registre par exemple) que l'autre script ce chargerait de modifier ?
Après, il existe différentes solution pour gérer ce genre de chose, mais sans avoir la totalité des éléments du problème, c'est déjà moins facile d'aider.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Mettre en pause un autre script

#5

Message par yohan8 »

Oui le script était compilé.

J'avais aussi pensé à cette solution mais cela voudrait dire que je devrais vérifier cette clé de registre toute les 2 lignes..

Sachant que mon premier script coupe internet lorsque la variable change, le deuxième script aura le temps de planter avant de se rendre compte que le premier script lu avertit de patienter/se mettre en pause avant le retour à la normal.

Pour commencer je vais essayer de caser ces vérifications de clé de registre à des points stratégiques.
Je verrais bien si cette solution convient. ;)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Mettre en pause un autre script

#6

Message par mikell »

Apparemment le premier script coupe internet alors que le second utilise internet, c'est ça ?
Dans ce cas si le 2ème script plante c'est qu'il y a une gestion d'erreur mal faite, et c'est cette gestion d'erreur qui devrait se charger de le mettre en pause
" 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
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Mettre en pause un autre script

#7

Message par yohan8 »

Oui c'est ça.


Le soucie c'est que parfois le script plante à temps parfois non :
Lorsque j'ouvre une page avec firefox "_FFOpenUrl("www.google.fr") le script chargera cette page sans erreur même si il n'y a pas internet.

Imaginons une connexion à une boite mail sans internet :

Code : Tout sélectionner

_FFTabAdd("www.hotmail.fr") --> Done (Voir spoiler)
$name = _FFObjGet("login","name") --> Pas d'objet trouvé
_FFObj($name,"value","toto@hotmail.fr") --> erreur
► Afficher le texte
Et si je met en pause le script lorsqu'il me renvois une erreur, même après rétablissement de la connexion, la page ne sera pas chargé et il ne pourra pas trouver l'InputText :|

De même c'est sacrément fastidieux de chercher toutes les gestions d'erreur par défaut et de les modifier..



Si effectivement il n'y a pas moyen de mettre en pause un autre script par ligne de code je me rabanterais sur un ImageSearch de l’icône pour cliquer dessus.
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

Re: [..] Mettre en pause un autre script

#8

Message par FireFox »

Bonjour,
Tu peux trouver l'icone à l'aide de son texte tooltip, pas besoin d'image search.

Sinon pour dire au script de se mettre en pause tu peux utiliser le message fenêtre WM_COPYDATA.
Une autre alternative qui me plaît moins serait un fichier texte ou plutôt ini (ou clé registre comme indiqué plus haut).

Edit: Si tu as besoin d'exemples n'hésite pas à demander :)

Cdlt, FireFox.
Modifié en dernier par FireFox le sam. 21 sept. 2013 14:16, modifié 1 fois.
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Mettre en pause un autre script

#9

Message par legend »

Pourquoi ne pas actualiser la page en boucle jusqu'a détecter que l'objet est présent ou que la page "la connexion a échoué" n'est pas présente a partir du code source dans le script principale?
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Mettre en pause un autre script

#10

Message par yohan8 »

d3monCorp a écrit :Tu peux trouver l'icone à l'aide de son texte tooltip, pas besoin d'image search.
T'as un exemple sympa ? :D

Pas mal WM_COPYDATA, j'étais parti sur Mailslot :)
Tu connais d'autre moyen de communication inter-script ?

L'exemple que j'ai donné Legend est un script non présent dans mon programme mais qui illustre bien mon problème. Effectivement cela règlerait l'erreur de l'objet non trouvé ou de la page non chargé mais si je l'intègre dans mon propre programme je devrais faire cette vérification pour chaque nouvelle navigation :|


Vu qu'a première vu il n'existe pas de fonction permettant de mettre en pause un autre script Autoit, je me suis rabattu sur une autre logique de relancer le script principale lorsque le deuxième coupe internet, étant donné que cette interruption n'est pas fréquente.

Merci :D
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

Re: [..] Mettre en pause un autre script

#11

Message par FireFox »

WM_COPYDATA ça marche très bien :)

http://www.autoitscript.com/forum/topic ... try1020620

Cdlt, FireFox.
Répondre