Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ejecutar una funcion cada 5 min.

Estas en el tema de Ejecutar una funcion cada 5 min. en el foro de Visual Basic clásico en Foros del Web. En realidad estoy trabajando con timer, pero el tiempo maximo es de un minuto y algo más (65.535 milisegundos), pero yo necesito que se ejecute ...
  #1 (permalink)  
Antiguo 17/08/2006, 11:48
Avatar de hernanmdq  
Fecha de Ingreso: julio-2005
Ubicación: Argentina - Entre Rios
Mensajes: 167
Antigüedad: 18 años, 9 meses
Puntos: 1
Ejecutar una funcion cada 5 min.

En realidad estoy trabajando con timer, pero el tiempo maximo es de un minuto y algo más (65.535 milisegundos), pero yo necesito que se ejecute cada 5 min.

Hay algun otro control o forma de implementar esto?

Salu2.
__________________
| Codigo Geek | Blog de Cine |
  #2 (permalink)  
Antiguo 17/08/2006, 12:35
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
mmmm no tengo bien claro si puedes tu aplicacion dejarla como tarea que se ejecute cada 5 minutos, la forma mas simple seria con una variable global que se fuera incrementando a cada minuto, una vez llegado a 5 ejecutas tu funcion y vuelves esta variable a 0
  #3 (permalink)  
Antiguo 17/08/2006, 12:54
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 17 años, 8 meses
Puntos: 0
Hola,
Dada las limitancias del timer,
lo que puedes hacer es que cuando inicies el programa capturar en una variable la hora y el timer que este chequeando comparando con la actual es decir

timeVarStart = a la hora cuando parte la aplicacion

Private sub Timer1_Timer
if timeVarStart-now() >5 minutos -- Obviamente expresandos ambos en hora

CALL mifuncion
timeVarStart=now() -- para que se reinicialice y espere de nuevo 5 minutos

Endif

end sub


espero que te sirva
  #4 (permalink)  
Antiguo 17/08/2006, 13:25
Avatar de hernanmdq  
Fecha de Ingreso: julio-2005
Ubicación: Argentina - Entre Rios
Mensajes: 167
Antigüedad: 18 años, 9 meses
Puntos: 1
Muchas gracias por su ayuda. Ahora le agarre la mano, voy a usar el timer cada minuto incrementando la varible en 1. Y usar la funcion mod para determinar cuando se llega a 5 min.

If Not (CincoMinutos Mod 5 = 0) Then
CincoMinutos = CincoMinutos + 1
Else
'Lo que ecesito.
End if
__________________
| Codigo Geek | Blog de Cine |
  #5 (permalink)  
Antiguo 18/08/2006, 08:00
Avatar de UID
UID
 
Fecha de Ingreso: febrero-2004
Ubicación: Villahermosa tabasco cent
Mensajes: 251
Antigüedad: 20 años, 2 meses
Puntos: 0
Bueno yo no conosco la funcion mod y nose como se trabaja con ella.. de hecho te iba a preguntar que cuando llegue a cinco como vuelves a hacer que se ponga en 0 el contador o la variable o el mod? realmente esa es la duda que me salta a la mente ya que nose como funciona la funcion mod. sera que en ese dato me puedas explicar ya de paso yo aqui te pongo otro ejemplo.

declaras esta variable

Dim tiempo As Integer

y ya en tu control timer pones esto

If tiempo = 5 Then
Aqui lo que necesites
tiempo = 0
Else
tiempo = tiempo + 1
End If

y si no, jajaja haz 5 timer's con la propiedad enable = flase :P
y en cada timer cuando pase un minuto que se desactive el mismo y active el segundo timer y el segundo al pasar un minuto se desactiva y activa el tercer timer y asi seguidamente y ya que cuando el quinto timer pase el minuto ejecutas tu aplicacion y desactiva el quinto timer y activas el primer timer :P jaja parecido a un ciclo :P

espero haberte ayudado :D el segundo ejemplo fue broma pero tambien funciona :P
__________________
http://www.xpresatelibre.com La Xpresion Al Maximo Nivel
  #6 (permalink)  
Antiguo 18/08/2006, 08:38
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
Cita:
Iniciado por UID Ver Mensaje
Bueno yo no conosco la funcion mod y nose como se trabaja con ella.. de hecho te iba a preguntar que cuando llegue a cinco como vuelves a hacer que se ponga en 0 el contador o la variable o el mod? realmente esa es la duda que me salta a la mente ya que nose como funciona la funcion mod. sera que en ese dato me puedas explicar ya de paso yo aqui te pongo otro ejemplo.

declaras esta variable

Dim tiempo As Integer

y ya en tu control timer pones esto

If tiempo = 5 Then
Aqui lo que necesites
tiempo = 0
Else
tiempo = tiempo + 1
End If

y si no, jajaja haz 5 timer's con la propiedad enable = flase :P
y en cada timer cuando pase un minuto que se desactive el mismo y active el segundo timer y el segundo al pasar un minuto se desactiva y activa el tercer timer y asi seguidamente y ya que cuando el quinto timer pase el minuto ejecutas tu aplicacion y desactiva el quinto timer y activas el primer timer :P jaja parecido a un ciclo :P

espero haberte ayudado :D el segundo ejemplo fue broma pero tambien funciona :P
jejeje mod entrega el resto de una division, ejemplo
resto=12 mod 5
msgbox trim(resto) 'Muestra un 2

tambien es valido esa forma ya que cada minuto el contador sumara 1 y cada 5 minutos la division por 5 dara como resto 0 :D jhejejeje
  #7 (permalink)  
Antiguo 18/08/2006, 09:24
Avatar de UID
UID
 
Fecha de Ingreso: febrero-2004
Ubicación: Villahermosa tabasco cent
Mensajes: 251
Antigüedad: 20 años, 2 meses
Puntos: 0
aaa... ok.. gracias por explicarmelo... entonces es mas facil la forma del mod que la que puse :P bueno se ve mas facil y mas corto :P
__________________
http://www.xpresatelibre.com La Xpresion Al Maximo Nivel
  #8 (permalink)  
Antiguo 19/08/2006, 08:56
Avatar de hernanmdq  
Fecha de Ingreso: julio-2005
Ubicación: Argentina - Entre Rios
Mensajes: 167
Antigüedad: 18 años, 9 meses
Puntos: 1
Llegue un poco tarde, y ya te han explicado lo del MOD que es una funcion matematica.

Salu2 y gracias de nuevo.
__________________
| Codigo Geek | Blog de Cine |
  #9 (permalink)  
Antiguo 24/08/2006, 11:47
 
Fecha de Ingreso: agosto-2006
Mensajes: 39
Antigüedad: 17 años, 8 meses
Puntos: 1
O puedes usar 5 timers y que cada uno tenga un intervalo de 1 minuto y que uno active a otro
  #10 (permalink)  
Antiguo 24/08/2006, 13:54
Avatar de elsaky  
Fecha de Ingreso: junio-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 53
Antigüedad: 17 años, 10 meses
Puntos: 0
lo podes hacer asi
timer con intervalo de 1000
5 minutos tienen 300 segundos

saludos


Dim xx As Integer

Private Sub Timer1_Timer()
If xx = 300 Then
ejecutar evento
xx = 0
End If
xx = xx + 1
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:44.