[..] Creer minuteur simple
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[..] Creer minuteur simple
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
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
Re: [..] Creer minuteur simple
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.
Code : Tout sélectionner
$Minuteur = 20
$Init = TimerInit ()
$Compteur = 0
WinWait ("Google - Mozilla Firefox")
$TitreActuel = WinGetTitle("[ACTIVE]")
While $Minuteur <> 0
$Diff = TimerDiff ($Init)
; Les différentes actions du programme...
If $Diff >= ($Compteur + 1000) Then
WinSetTitle ( $TitreActuel, "", $TitreActuel & " [" & $Minuteur & "]" )
$Minuteur = $Minuteur - 1
$Compteur = $Diff
EndIf
WEnd
(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.
Re: [..] Creer minuteur simple
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
Peut être y aurait t'il une simplification ?
Ou sinon je passerais par l'interface GUI
Re: [..] Creer minuteur simple
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.
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.
Re: [..] Creer minuteur simple
Merci, ça marche 
Re: [..] Creer minuteur simple
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...
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...
- Tlem
- Site Admin

- Messages : 11818
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Creer minuteur simple
Très étonnant si vous utilisez la fonction Timer !!!
Un bout de code permettrait plus de compréhension.
Un bout de code permettrait plus de compréhension.
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é".
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é".
Re: [..] Creer minuteur simple
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...
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 : Tout sélectionner
$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
WEndRe: [..] Creer minuteur simple
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)
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.
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.
Re: [..] Creer minuteur simple
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
Merci pour votre aide
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Creer minuteur simple
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.
Lancez le code dans un nouveau process, c'est la solution la plus simple.
Signez ici
Re: [..] Creer minuteur simple
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)
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
Voici le code pour le programme principal (sachant que minuteur.exe "se ferme" dès que le minuteur arrive à 0)
Code : Tout sélectionner
ShellExecute("minuteur.exe")
$timer=ProcessExists("minuteur.exe")
while ($timer ==1)
; mon programme
Wend
Merci encore
- Tlem
- Site Admin

- Messages : 11818
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Creer minuteur simple
Pourquoi faire compliqué ???
► Afficher le texte
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é".
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é".
Re: [..] Creer minuteur simple
Oops, j'avais oublié le petit Sleep pour le cœur du pauvre PC
Maintenant que votre problème est un peu moins flou, et pour rester dans la même ligné que le premier code, je peu vous proposer de faire comme ceci :
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
Maintenant que votre problème est un peu moins flou, et pour rester dans la même ligné que le premier code, je peu vous proposer de faire comme ceci :
Code : Tout sélectionner
$Minuteur = 20
$Compteur = 0
$Init = TimerInit ()
WinWaitActive ("Google - Mozilla Firefox")
$TitreActuel = WinGetTitle("[ACTIVE]")
While $Minuteur <> 0
Timer()
ToolTip ("Attente 1") ; Action du programme.
Pause(3000)
ToolTip ("Attente 2") ; Action du programme.
Pause(3000)
; ect...
Sleep (10)
WEnd
Func Timer()
$Diff = TimerDiff ($Init)
If $Diff >= ($Compteur + 1000) Then
WinSetTitle ( $TitreActuel, "", $TitreActuel & " [" & $Minuteur & "]" )
$Minuteur = $Minuteur - 1
$Compteur = $Diff
EndIf
If $Minuteur < 0 Then Exit
EndFunc
Func Pause ($Temps)
$Diff2 = TimerDiff ($Init)
Do
$Diff3 = TimerDiff ($Init)
Sleep (1)
Timer()
Until $Diff3 >= ($Diff2 + $Temps)
EndFuncJe 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



