Ich habe einen fehler in einem Timer

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

emubox2002
Posts: 5
Joined: 30 May 2020, 12:05

Ich habe einen fehler in einem Timer

Post by emubox2002 » 13 Jun 2020, 03:24

Wenn ich den Timer starte, zählt er bei 60 Minuten weiter.
Wenn die 60 Minuten erreicht sind zählt er eine Stunde weiter ist ok.
Aber die Minuten werden bei 60 nicht null sondern er zählt weiter bis 100.
Was mache ich falsch.
Ich habe schon rumprobiert, aber bekomme es nicht hin.
Kann mir vielleicht jemand helfen.


Hier ist der script.

Code: Select all

#SingleInstance, Force

Progress, m0 b1 fs80 zh0 x550 y50 w450 cwred , % "00:00:00",
w .= x , y := SubStr("000" w, -3)
 

   
startover:
t := 3595, w := SubStr(y,1,2)*60*60 + SubStr(y,3,2)*60 + SubStr(y,3,2)
settimer,label,1000
return
label:
+++t
Progress,, % SubStr("00" floor((t-w)/60/60), -1) ":" SubStr("00" floor((t-w,60)/60), -1) ":" SubStr("00" mod(t-w,60), -1),

p:: settimer,label,% (a:=!a) ? "off" : "on"
s:: goto startover
esc:: ExitApp

just me
Posts: 7301
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Ich habe einen fehler in einem Timer

Post by just me » 13 Jun 2020, 04:56

Moin,

wenn eine maximale Laufzeit von 24 Stunden ausreicht.

Code: Select all

#SingleInstance, Force

Progress, m0 b1 fs80 zh0 x550 y50 w450 cwred , % "00:00:00",
; w .= x , y := SubStr("000" w, -3) ; <<<<< w und x gibt es nicht, y ist immer 0

startover:
Dauer := SubStr(A_Now, 1, 8)
; ---------------------------- <<<<< für den Test
T := 3595 
Dauer += T, S
; ---------------------------- <<<<< für den Test
; w := SubStr(y,1,2)*60*60 + SubStr(y,3,2)*60 + SubStr(y,3,2) ; <<<<< s.o.: y = 0 -> w = 0
Settimer, Label, 1000
Return

label:
; +++t ; <<<<< +++ ist interessant, funktioniert aber trotzdem
Dauer += 1, S
FormatTime, Anzeige, %Dauer%, HH:mm:ss
Progress, , %Anzeige%
Return

p:: settimer,label,% (a:=!a) ? "off" : "on"
s:: goto startover
esc:: ExitApp

emubox2002
Posts: 5
Joined: 30 May 2020, 12:05

Re: Ich habe einen fehler in einem Timer

Post by emubox2002 » 13 Jun 2020, 12:30

Es funktioniert, finde ich Toll.
Danke für die Hilfe, ich hätte es nicht umsetzten können.
Wie kann man so etwas lernen.
Ich habe aber noch ein Problem.
Ich will aus einer ini Datei eine 1 oder 0 auslesen.
Bei 1 soll die Zeit stoppen.
Bei 0 soll die Zeit wieder weiterlaufen.
Hier ist meine Idee, siehe script.

Code: Select all

#SingleInstance, Force
Progress, m0 b1 fs80 zh0 x550 y50 w450 cwred , % "00:00:00",

startover:
Dauer := SubStr(A_Now, 1, 8)
T := 0
Dauer += T, S
Settimer, Label, 1000

loop,
{
Iniread, P, D:\Downloads\Gerd\AHK\FB.ini, Pause, P
If P = 1	
Hier soll die Zeit angehalten werden
If P = 0
Hier soll die Zeit wieder weiterlaufen
sleep, 3000
}


Return
label:
Dauer += 1, S
FormatTime, Anzeige, %Dauer%, HH:mm:ss
Progress, , %Anzeige%

Return
p:: settimer,label,off
o:: settimer,label,on
b:: settimer,label,% (a:=!a) ? "off" : "on"
s:: goto startover
m:: msgbox, %Anzeige%
esc:: ExitApp
Last edited by BoBo on 13 Jun 2020, 18:37, edited 1 time in total.
Reason: [code][/code]-Tags hinzugefügt.

Post Reply

Return to “Ich brauche Hilfe”