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

Cerrar un form automaticamente despues de 10 minutos

Estas en el tema de Cerrar un form automaticamente despues de 10 minutos en el foro de Visual Basic clásico en Foros del Web. Por ejemplo cargo mi sistema y habro una ventana, si esa ventana no es utilizada durante un tiempo se cierre sola, solo la ventana q ...
  #1 (permalink)  
Antiguo 19/08/2008, 15:06
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Cerrar un form automaticamente despues de 10 minutos

Por ejemplo cargo mi sistema y habro una ventana, si esa ventana no es utilizada durante un tiempo se cierre sola, solo la ventana q se abrio, no todo el proyecto?
Alguna idea de como lo hacerlo?
  #2 (permalink)  
Antiguo 19/08/2008, 15:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cerrar un form automaticamente despues de 10 minutos

Puedes poner un Timer que vaya contando cuántos minutos ha pasado desde que no se hizo ninguna acción en el Form. Y cada vez que se haga una acción (Click, KeyPress, etc.) reiniciar el contador.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/08/2008, 15:42
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cerrar un form automaticamente despues de 10 minutos

Puedes darme alguna idea de como seria el codigo ya que no se utilizar el timer
  #4 (permalink)  
Antiguo 19/08/2008, 15:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Cerrar un form automaticamente despues de 10 minutos

El Timer puedes hacer que se ejecute cada 1 minuto colocando su Interval a 60000. El código sería más o menos así:
Código PHP:
Private Contador As Integer
Private Sub Timer1_Timer()
Contador Contador 1
If Contador 10 Then
    Unload Me
End 
If
End Sub 
Lo único que tendrás que hacer es que en cada evento que se produzca en la ventana reiniciar el contador.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 19/08/2008, 16:01
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cerrar un form automaticamente despues de 10 minutos

gracias david tenias razon la solucion iba por ahi, dejo este link por si alguien lo necesita
  #6 (permalink)  
Antiguo 19/08/2008, 17:15
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cerrar un form automaticamente despues de 10 minutos

Bueno surge un problema se desborda el timer ya q solo acepta 65535 de interval, el ejemplo corre con 5 minutos y pense que corria con cualquier tiempo pero NO!, al poner 10 minutos se desborda espero me puedas ayudar a solucionar el problema ya que quiero q se ejemcute cada 1 hora o 2 horas aqui esta el codigo

Código:
Option Explicit
Const INTERVALO_EN_MINUTOS As Integer = 3 ' tiempo en minutos

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

Private Sub Timer1_Timer()
Static Temp_Seg As Long
Temp_Seg = Temp_Seg + 1
If (Temp_Seg * 60) >= (INTERVALO_EN_MINUTOS * 60) * 60 Then
   Temp_Seg = 0
   Form2.Show
End If
End Sub
  #7 (permalink)  
Antiguo 20/08/2008, 02:01
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Cerrar un form automaticamente despues de 10 minutos

Cita:
Iniciado por franko1809 Ver Mensaje
Bueno surge un problema se desborda el timer ya q solo acepta 65535 de interval, el ejemplo corre con 5 minutos y pense que corria con cualquier tiempo pero NO!, al poner 10 minutos se desborda espero me puedas ayudar a solucionar el problema ya que quiero q se ejemcute cada 1 hora o 2 horas aqui esta el codigo
Hola, en vez de utilizar un control Timer, puedes hacerlos con la API "CreateTimerQueue" y no tendrás ese problema.

En la API-Guide tienes un buen ejemplo.

  #8 (permalink)  
Antiguo 20/08/2008, 06:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Cerrar un form automaticamente despues de 10 minutos

El problema está en esa multiplicación que estás haciendo, no necesitas multiplicar por 60 ambos valores. ¿Has probado el ejemplo que te puse? .

Solo necesitas poner el Interval a 60000 (un minuto) e ir sumando 1 a 1 y no multiplicar porque de lo contrario va a desbordar.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 20/08/2008, 14:53
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cerrar un form automaticamente despues de 10 minutos

Cita:
Iniciado por David el Grande Ver Mensaje
El problema está en esa multiplicación que estás haciendo, no necesitas multiplicar por 60 ambos valores. ¿Has probado el ejemplo que te puse? .

Solo necesitas poner el Interval a 60000 (un minuto) e ir sumando 1 a 1 y no multiplicar porque de lo contrario va a desbordar.
jaja es que me emocione cuando funciono! ya funciona, pero como haria para que realize cierta accion no cada 10 minutos sino todos los dias a una hora determinada y que pasaria si a esa hora la PC esta apagada?; Como controlaria esa situacion?

Código:
Private Sub Timer1_Timer()
'El interval esta a 60000
Static tiempo As Long
tiempo = tiempo + 1
If tiempo = 10 Then 'Aqui ponemos las horas en minutos
   tiempo = 0
   'accion a realizar
   unload me
End If
End Sub
  #10 (permalink)  
Antiguo 20/08/2008, 15:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Cerrar un form automaticamente despues de 10 minutos

Para realizar la acción a cierta hora del día, solo habrá que poner:
Código PHP:
Private Sub Timer1_Timer()
If 
Hour(Time) = 10 And Minutes(Time) = 30 Then
    
'Acción que se va a ejecutar a las 10:30 hs.'
End If 
Pero eso solo va a funcionar si tu programa está activo a esa hora, así que no funcionará si la computadora está desligada o si tu programa no está abierto.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 15:25.