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("")