Comprobar algo cada dia (SOLUCIONADO)

Iniciado por Littl3, 11 Mayo 2008, 10:53 AM

0 Miembros y 1 Visitante están viendo este tema.

Littl3

Buenas, estoy haciendo un programa que necesito que compruebe algo cada dia, al principio me pase de listo y crei que lo podria hacer con el timer.... :-[ XD, pero descubri un poco tarde ya que el timer solo le puedes poner un min o almenos yo no e sabido ponerlo a mas, estoy seguro que hay la manera pero no se me ocurre, gracias
salu2

seba123neo

Hola,desde las propiedades solo te da un minuto y algo,pero con un codigo simple podes hacer que dure lo que vos quieras...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Littl3


SKL (orignal)


como dice seba... es solo en minutos, segundos y milisegundos...

pero si aprendes a usar la funcion FORMAT lo haces en 10 minutos...

saludos =D

Littl3

No se utilizar la funcion format, e provado de ponerle mediante code al interval del timer lo siguiente.

Timer.Interval = 18000000

Que es equivalente a 5h y me ha dicho " El valor de la propiedad no es valido" ya me parecia ami demasiado facil xD, alguna sugerencia?

seba123neo

pero no,te dije que solo aguata un minuto y algo,o sea 65535 milisegundos...tenes que hacer una funcion,algo asi:

Dim Intervalo As Double

Private Sub Form_Load()
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
Intervalo = Intervalo + 1
If Intervalo = 3600 Then
MsgBox "llego a 1 hora"
Intervalo = 0
End If
End Sub


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

SKL (orignal)

jajajaja nooooooooooo jajajaa, aprende a usarlo dije....

no se puede poner ese numero...


hace un cronometro, y un if, entonces pones el timer en 1000 (es igual a 1 segundo).


algo asi!

Label1.Caption = Format(CDate(Label1.Caption) + CDate("00:00:01"), "Hh:mm:ss")

recorda que el label1, tiene que ser asi "00:00:00" entonces empieza a sumarle...

haciendo eso haces un if al label cuando es igual a "05:00:00" y listo =)


no se si se entiende... saludos

Littl3

ya habia pensado algo asi gracias pero el problema de hacerlo asi es que mi programa esta destinado a estar siempre ejecutandose, entonces estara comiendo recursos constantemente pero tampoco creo que ni se note no?
otra forma que se ma acaba de ocurrir es guardar la hora actual en el form load despues en una variable sumarle 5 (o las horas que quieras que pasen), e ir comprobando con un timer que la hora actual concida con la variable anterior, cuando la variable coincida hacer la comprobacion que sea y volver a mandarlo al form load, yo creo que asi comera aun menos no? que os parece salu2

cobein

Si lo que queres hacer es una tarea diaria podes hacer algo asi.

Private Sub Form_Load()
    If DayChanged Then
        Debug.Print "Changed"
    End If
End Sub

Private Function DayChanged() As Boolean
    Static lDay As Long
   
    If Not lDay = Day(Now) Then
        lDay = Day(Now)
        DayChanged = True
    End If
End Function


llamando a la funcion desde un timer o lo que sea con el intervalo que se te ocurra.

Otra solucion es usar el programador e tareas....
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Littl3

Ya pero de esa manera ya tengo que usar un timer para llamar la funcion, esta complicado, que fallo haber limitado los timer a 1min.. :S xD bueno gracias
salu2