Page 1 sur 1

Fonction send qui ne fonctionne pas à 100%

Posté : jeu. 03 janv. 2019 17:05
par corrs78
Bonjour à toutes et tous, tout d'abord, meilleurs vœux à toute la communauté Fr d'Autoit :)

vous sauriez me dire pourquoi ce script ne fonctionne pas à tous les coups.
Concrètement si je tente d'ouvrir un onglet dans le navigateur Edge et que je tente de le fermer ensuite cela fonctionne que dans max 80% des cas. Et j'ai l'impression que plus j'ai d'onglets ouverts moins cela fonctionne.

Mon objectif est d'ouvrir plusieurs onglets (pages web avec url différentes) tous les jours, seulement lorsque je rouvre Edge, les onglets restent en mémoire, voilà pourquoi je souhaite les fermer après chaque ouverture afin de ne pas saturer la mémoire de l'ordinateur.
#include<Process.au3>

For $i=1 to 20
   sleep(1000)
   _RunDos("start microsoft-edge:https://www.bing.com/"&$i)
   sleep(1000)
   if $i > 1 Then send("^w") ; CTRL+W > raccourci clavier pour fermer un onglet sous Edge.
   $i = $i+1
Next
MsgBox(64,"","terminé",3)
Merci.

Re: Fonction send qui ne fonctionne pas à 100%

Posté : jeu. 03 janv. 2019 19:29
par jl56
Bonjour à tous

Meilleurs vœux pour 2019 santé bonheur à tous et à vos proches

@corrs78

En lisant ton code tu as une boucle For next avec $i
et dans la boucle tu as une itération $i=$i + 1
je pense déjà que tu dois faire un choix
Idem pour le test $i ne sera jamais <1 car tu indiques dans la ligne FOR de 1 à 20
le test est inutile

Je n'ai pas testé la fermeture des onglets

A+

JL56

Re: Fonction send qui ne fonctionne pas à 100%

Posté : jeu. 03 janv. 2019 21:01
par corrs78
Pour le I faut bien incrémenter pour avancer dans la boucle non ?!
Pour le if c'est une erreur en effet car à la base j'avais mis cette ligne au début pour éviter de fermer un onglet pas encore créé.

Bon cela dit ça n'explique pas le fonctionnement aléatoire. Parfois c'est 100% parfois 90 ou beaucoup moins.

Re: Fonction send qui ne fonctionne pas à 100%

Posté : jeu. 03 janv. 2019 21:46
par Tlem
Pour le I faut bien incrémenter pour avancer dans la boucle non ?!
C'est déjà le rôle de la boucle For/Next, du coup, si vous rajoutez une incrémentation "manuelle", celle-ci ne sert à rien. ^^

Si vous tenez à conserver votre incrémentation manuelle, remplacez la boucle For/Next par une boucle infinie While/Wend.

Re: Fonction send qui ne fonctionne pas à 100%

Posté : jeu. 03 janv. 2019 22:01
par corrs78
Merci pour ces précisions.