[R] Minuteur 15 min

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
tuyn00txa
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mer. 17 févr. 2010 23:50
Status : Hors ligne

[R] Minuteur 15 min

#1

Message par tuyn00txa »

Bonjour, je voulais trouver un autre moyen d'éxecuter la même chose que ce bout de programme, c'est à dire afficher une pause de 15 min à l'écran (minuteur) car ce programme m'utilise 50% de ma RAM (1 go).

Merci pour votre aide.

Code : Tout sélectionner

Local $differ,$temp=960,$compt,$initi,$minute,$seconde

while ($temp>0)
$differ = TimerDiff ($Initi)
If $differ >= ($Compt + 1000) Then
 if _IsPressed("2D",$dll) Then
     $temp-=130
 EndIf
 $temp = $temp - 1
 $Minute = $temp/60
 $Minute = int($Minute)
 $seconde = mod ($temp,60)
 ToolTip("Pause: "&$Minute & " min " & $seconde & " sec",739,11)
 $Compt = $differ
Endif
If $temp < 0 Then
  ToolTip("")
EndIf
WEnd
Modifié en dernier par tuyn00txa le lun. 19 juil. 2010 23:58, modifié 1 fois.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Minuteur 15 min

#2

Message par timmalos »

Il vous suffit de rajouter Sleep(100) pour liberer le processeur, surtout que vous n'afficher que toutes les secondes, un Sleep(500) serait encore mieux. Je vous propose cependant le code suivant qui est un peu mieux, il est certain d'être toujours à l'heure.

Code : Tout sélectionner

#include <Misc.au3>
;/////////:::::Config
Dim $time[3] = [10,15,50] ; Attendre 10heure, 15 minutes, 50 secondes
Local $interval = 100 ; = Affichage toutes les 1 secondes, permet de liberer le processeur
;/////////:::::Declaration
Local $differ, $init, $dll
Local $nb_sec_to_wait = $time[2] + $time[1]*60 + $time[0]*3600
$dll = DllOpen("user32.dll")
$init = TimerInit()

While ($nb_sec_to_wait > 0)
    If _IsPressed("2D", $dll) Then
        $nb_sec_to_wait -= 130
    EndIf

    $nb_sec_to_wait -= TimerDiff($init)/1000
    $init = TimerInit()

    $time[2] = Round(Mod($nb_sec_to_wait, 60),3)
    $time[1] = Int(Mod($nb_sec_to_wait,3600)/ 60)
    $time[0] =  Int($nb_sec_to_wait/ 3600)
    ToolTip("Pause: " & $time[0] & " heures " & $time[1] & " min " & $time[2] & " sec", 739, 11)
    Sleep($interval)
WEnd
ToolTip("")
tuyn00txa
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mer. 17 févr. 2010 23:50
Status : Hors ligne

Re: [..] Minuteur 15 min

#3

Message par tuyn00txa »

Merci beaucoup timmalos, cela correspond parfaitement à ma demande. :D :D
Répondre