Aqui esta el Script:
Code: Select all
Gui Add, Text, x1 y12 w100 h20, Horas
Gui Add, Edit, x35 y10 w20 h20 Number limit gMax vHoras, 0 ; vHoras: Crea la variable "Horas"
Gui Add, Text, x60 y12 w100 h20, Minutos
Gui Add, Edit, x100 y10 w20 h20 Number limit gMax vMinutos, 0 ; "Number" solo se pueden escribir numeros - Si "Limit" se deja sin ningun numero (Ej: limit6 solo se puede hasta 6 caracteres) seguido va a admitir solo hasta donde llegue la Gui
Gui Add, Text, x125 y12 w100 h20, Segundos
Gui Add, Edit, x175 y10 w20 h20 Number limit gMax vSegundos, 1 ; 1 es el tiempo "default" en segundos
Gui Add, Checkbox, x220 y20 w100 h30 vMensaje, Mostrar mensaje al finalizar
Gui Font, Bold
Gui Add, Button, x10 y40 w190 h30 Default gComienzo, Empezar ; gComienzo hace que vaya a la direccion "Comienzo"
Gui, Show,, Introduzca el tiempo
return
GuiClose:
ExitApp
Max:
Gui, Submit, NoHide
if (StrLen(%A_GuiControl%) = 2) ;Si la longitud de algun control de la gui es igual a 2...
Send {Tab} ; Va a presionar tab y va a pasar a la siguiente
return
Comienzo:
Gui, Submit, NoHide
Start := A_TickCount
/*
Tambien funciona de esta manera
SetTimer, Aca, 1
Aca:
Loop{
ToolTip, % ConvertToTime((Segundos * 1000) + (Minutos * 60000) + (Horas * 3600000) - (A_TickCount - Start))
if (TimeLeft := ((Segundos * 1000) + (Minutos * 60000) + (Horas * 3600000) - (A_TickCount - Start))) < 0 {
SetTimer, Aca, Off
TimeLeft := 0
break
}
}
*/
mmm := (Segundos * 1000) + (Minutos * 60000) + (Horas * 3600000)
Loop{
ToolTip, % ConvertToTime(mmm - (A_TickCount - Start))
;If (ConvertToTime((mmm - 994) - (A_TickCount - Start))) <= 0
;If (ConvertToTime((mmm - (A_TickCount - Start)) - (A_TickCount - Start))) <= 0
If (ConvertToTime(mmm - (A_TickCount - Start))) <= 0
break
}
; GuiControlGet, checked,, Mensaje
; msgbox Hola
; Mas tarde quería añadirle que cuando llegue al cero el usuario tiene la posibilidad de seleccionar si quiere que aparezca un mensaje o no, precionando la casilla, una vez que el tiempo llegó a cero.
Esc::Exitapp
ConvertToTime(ms) ;Formato en milisegundos 00:00:00:000 (Los ultimos 3 digitos son milisegundos)
{
StringRight , mil , ms , 3
StringTrimRight , sec , ms , 3
min := Floor(sec/60)
sec := sec-(min*60)
hrs := Floor(min/60)
min := min-(hrs*60)
While StrLen(sec) <> 2
sec := "0" . sec
While StrLen(mil) <> 3
mil := "0" . mil
While StrLen(min) <> 2
min := "0" . min
While StrLen(hrs) <> 2
hrs := "0" . hrs
return , hrs . ":" . min . ":" . sec . ":" . mil
}
Espero que puedan ayudarme con este pequeño problema
Gracias!
PD: Si quieren ignoren las anotaciones, ya que son apuntes mios xD