Bonjour, comment créer un minuteur simple sans passer par l'interface GUI , de type "ToolTip"... ?
Par exemple aller sur une page internet et après le chargement, effectuer des actions sur cette page tout en attendant 20 secondes (le minuteur se trouvant en haut sur la fenêtre).
Merci pour votre aide
AutoIt Français
Stigmate
Niveau 4
Inscription: Ven 26 Déc 2008 11:54 Messages: 67
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mar 09 Mar 2010 10:49
Bonjours, et bien vous n'avez pas besoin de passer par une GUI pour avoir un Timer dans votre programme, mais si vous désirez quant même le visualiser sans passer par votre propre GUI, essayez donc quelque chose comme sa :
Pour cet exemple ouvrez Firefox et regardez dans la barre de titre si cela vous conviens =) (Si vous n'avez pas Firefox remplacer le "Google - Mozilla Firefox" par le nom d'une fenêtre de votre choix et ouvrez cette fenêtre).
Adaptez tous sa à votre guise.
AutoIt Français
tuyn00txa
Niveau 2
Inscription: Mer 17 Fév 2010 23:50 Messages: 18
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mar 09 Mar 2010 21:31
C'est exactement ça que je cherchais merci Stigmate ...mais par contre le processeur n'aime pas trop...
Peut être y aurait t'il une simplification ?
Ou sinon je passerais par l'interface GUI
AutoIt Français
pop45
Niveau 5
Inscription: Dim 30 Aoû 2009 15:18 Messages: 195 Age: 15
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mar 09 Mar 2010 22:05
Mettez un sleep dans la boucle(même un sleep (1) c'est bien)
Cordialement Pop45 Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour a ton père,
AutoIt Français
tuyn00txa
Niveau 2
Inscription: Mer 17 Fév 2010 23:50 Messages: 18
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mar 09 Mar 2010 22:30
Merci, ça marche
AutoIt Français
tuyn00txa
Niveau 2
Inscription: Mer 17 Fév 2010 23:50 Messages: 18
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mar 09 Mar 2010 23:00
Il reste tout de même un petit problème que je n'arrive pas à résoudre...
J'ai dans les actions à effectuer des "sleep(3000)"... ce qui me fausse le minuteur car il doit attendre à ce moment là 3 secondes pour décrémenter 1 seconde dans le minuteur...
AutoIt Français
Tlem
Site Admin
Inscription: Ven 20 Juil 2007 20:00 Messages: 5596 Age: 43
Localisation: Bordeaux
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mer 10 Mar 2010 02:05
Très étonnant si vous utilisez la fonction Timer !!! Un bout de code permettrait plus de compréhension.
Je veux en faite effectuer plusieurs actions (pouvant durer une dizaine de secondes) jusqu'en que le minuteur arrive à 0. Sur ce code, j'ai mis comme action d'attendre, du coup le minuteur ne décrémente pas toutes les secondes mais toutes les 4 secondes...
Code
$Minuteur = 10 $Init = TimerInit () $Compteur = 0
While $Minuteur <> 0
$Diff = TimerDiff ($Init) sleep(1)
sleep (3000) ; action à effectuer
If $Diff >= ($Compteur + 1000) Then ToolTip ($Minuteur,1120,0) $Minuteur = $Minuteur - 1 $Compteur = $Diff EndIf
WEnd
AutoIt Français
pop45
Niveau 5
Inscription: Dim 30 Aoû 2009 15:18 Messages: 195 Age: 15
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mer 10 Mar 2010 14:18
Ben vous avez un time diff de lancer alors utiliser le
Recupere la dates et dite lui de ne plus rien faire tan qu'il ne c'est pas ecouler 3 seconde
Et malheureusement je ne peut pas vous aider car je ne connais rien a cette fonction (jamais utiliser)
Cordialement Pop45 Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour a ton père,
AutoIt Français
tuyn00txa
Niveau 2
Inscription: Mer 17 Fév 2010 23:50 Messages: 18
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mer 10 Mar 2010 14:32
Mais mon temps pendant laquelle se déroule les actions est supposé inconnu. Ici le "sleep(300)" était juste un exemple... Faudrait-il à ce moment là utiliser une fonction à part minuteur() qui est lancé grâce à "AdlibRegister" et qui se lance dès que ces actions commencent?
Merci pour votre aide
AutoIt Français
Iste
Modérateur
Inscription: Jeu 04 Déc 2008 14:21 Messages: 1028 Age: 22
Localisation: 76
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mer 10 Mar 2010 15:11
Si le temps d'execution de vos actions est plus long que le temps d'attente, en effet, vous aurez un probleme.. Lancez le code dans un nouveau process, c'est la solution la plus simple.
Signez ici
AutoIt Français
tuyn00txa
Niveau 2
Inscription: Mer 17 Fév 2010 23:50 Messages: 18
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mer 10 Mar 2010 15:43
Le problème reste identique avec un nouveau process pour moi (il est possible que je me trompe...) Voici le code pour le programme principal (sachant que minuteur.exe "se ferme" dès que le minuteur arrive à 0)
Code
ShellExecute("minuteur.exe") $timer=ProcessExists("minuteur.exe") while ($timer ==1)
; mon programme
Wend
Je voudrais pour le rappeler, éxecuter certains actions jusqu'en que mon minuteur arrive à 0 ,c'est à dire que mon minuteur en passant à 0, arrêterait les actions en cours même si ils n'ont pas eu le temps de finir.
Merci encore
AutoIt Français
Tlem
Site Admin
Inscription: Ven 20 Juil 2007 20:00 Messages: 5596 Age: 43
Localisation: Bordeaux
Sujet du message: Re: [..] Creer minuteur simple
Posté: Mer 10 Mar 2010 16:08
Pourquoi faire compliqué ???
Spoiler pour :
Code
Global $Minuteur = 10000 ; Temps en millisecondes Global $Init = TimerInit () ; on démarre le timer ici.
AdlibRegister("TimerControl", 250) ; Appel la fonction TimerControl() toutes les 250ms
; La boucle d'attente. While 1 sleep (3000) ; action à effectuer WEnd
Func TimerControl() Local $Diff = TimerDiff ($Init) ; On récupère le temps depuis le lancement du timer. If $Diff >= $Minuteur Then ; On vérifie si le temps passé est supérieur à la variable $Minuteur. MsgBox(0, "", "Il s'est écoulé " & int($Diff/1000) & " secondes depuis le début du script" ) Exit ; On sort ... EndIf EndFunc
Vous pouvez ainsi utiliser la fonction pause quant vous le souhaitez. Je ne suis pas du tout le plus expérimenté alors il y a certainement mieux à faire (Etudiez la solution de Tlem !) mais sa fonctionne
Edit : Oops, - maintenant ! - sa fonctionne, j'ai rajouté ceci : "If $Minuteur < 0 Then Exit", sinon le minuteur continuait en dessous de 0
Utilisateurs parcourant ce forum: Exabot [Bot], Google [Bot] et 6 invités
Vous ne pouvez pas poster de nouveaux sujets Vous ne pouvez pas répondre aux sujets Vous ne pouvez pas éditer vos messages Vous ne pouvez pas supprimer vos messages Vous ne pouvez pas joindre des fichiers