Visual Basic - Ayuda duda timer inactividad (principiante)

Life is soft - evento anual de software empresarial
   
Vista:

Ayuda duda timer inactividad (principiante)

Publicado por NICOLÁS IGNACIO (5 intervenciones) el 14/07/2016 14:54:49
Buenas tardes a tod@s:

Me presento, soy un joven programador autodidacta aún haciendo ciertos destrozos por estos mundos de la programación, hace poco me ha salido un "trabajito" de hacer un menú tactil para un restaurante, como el único lenguage de programación con el que estoy familiarizado es Vb pues decidi hacerlo así.

La aplicación ya está semi-terminada, funciona a la perfección (adaptándome a lo que se me pidió), al fin y al cabo no era sino crear forms con los diferentes platos del menu, divididos por secciones e idiomas (mas trabajo de diseño gráfico que programación, a decir verdad).

Bien, mi duda es la siguiente, tengo un menú principal donde el usuario elije idioma, supongamos que el usuario selecciona "español", el botón haría un me.close al menu principal y un formespañol.show para enseñar lo que el usuario ha pedido, así se ramifica toda la aplicación.

Bien, mi duda es la siguiente: Necesito crear una especie de timer de inactividad, para que cuando el programa no detecte movimiento de ratón, click, o cualquier tipo de interacción del usuario, vuelva a la pantalla de selección de idioma. Como he mencionado más arriba soy principiante en esto, si me pueden echar una mano estaré profundamente agradecido, también destacar que si alguien sabe la respuesta a mi problema y tiene intención de contestármela, agradecería que fuese lo menos técnico posuible para que pudiera entenderla (si, así de nulo soy, lo siento xD).

Muchísimas gracias de antemano, estaré atento a posibles soluciones.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo

Ayuda duda timer inactividad (principiante)

Publicado por Andres Leonardo (702 intervenciones) el 14/07/2016 17:04:13
esto encontre alguna vez y me sirvio .... lo saque de un txt jajaja espero lo puedas adaptar...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Option Explicit
 
Private Declare Function GetQueueStatus Lib "user32" (ByVal fuFlags As Long) As Long
 
Private Const QS_KEY = &H1
Private Const QS_MOUSEMOVE = &H2
Private Const QS_MOUSEBUTTON = &H4
Private Const QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON)
Private Const QS_INPUT = (QS_MOUSE Or QS_KEY)
 
Public bCancel As Boolean
 
Public Sub Inactividad(ByVal TimeOut_InSec As Long)
 Dim t As Long
 t = Timer
 Do While bCancel = False
 If GetQueueStatus(QS_INPUT) Then
 t = Timer
 DoEvents
 End If
 If Timer - t >= TimeOut_InSec Then Exit Do
 Loop
 If bCancel = False Then MsgBox "La Aplicacion se cerro despues de " & Timer - t & " segundos inactiva": Unload Me
End Sub
 
Private Sub Form_Load()
 Me.Show
 Call Inactividad(5)
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
 bCancel = True
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda duda timer inactividad (principiante)

Publicado por NICOLÁS IGNACIO (5 intervenciones) el 14/07/2016 17:38:56
Lo cierto es que no me ha quedado nada, pero nada claro jajaj, lo siento! Alguna ayudita más? O una explicación más detallada de como conseguirlo? Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo

Ayuda duda timer inactividad (principiante)

Publicado por Andres Leonardo (702 intervenciones) el 14/07/2016 20:25:16
Haz un nuevo proyecto de cero y pega ese codigo

luego ejecutalo .. lo que hace es poner una espera y donde la espera es mayor al tiempo indicado se cierra... obviamente tyu no vas a cerrar tu aplicacion vas a allamar a la pagina o form principal cierto.....

OK listo esto es lo que hace ......... coloca esto en un modulo de clase e invocas al procedimiento inactividad y listo.


esto usa unas apis de windows... quizas no se el detalle de las lineas pero si lo pruebas veras que funciona...
en el ejemplo te cierra el dormulario a los 5 segundos de no hacer nada....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda duda timer inactividad (principiante)

Publicado por NICOLÁS IGNACIO (5 intervenciones) el 14/07/2016 22:44:16
Lo has dejado más claro, gracias. Ahora bien, si quiero añadir esto al proyecto ya hecho con todos sus forms, y creo un módulo de clase en el mismo. ¿Cómo llamo a este módulo desde todos los forms que tengo ya creados? Es decir, cómo lo hago global?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo

Ayuda duda timer inactividad (principiante)

Publicado por Andres Leonardo (702 intervenciones) el 14/07/2016 23:48:43
Crea el modulo de clase (.bas) ahora ... si te das cuenta la funcion es publica solo deberias invocarla en cada load Form y listo .. tu tema resuelto jejejeje

en cada load form

Call Inactividad(5) donde 5 es el numero de segundos que le vas a dar para que considere inactividad......

Cuando llegue a esto deberas definir que deseas hacer ... no cierras la aplicacion, pero podrias llamar al inciio y esa no tendria inactividad.....

espero te ayude y nos cuentas como te va!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda duda timer inactividad (principiante)

Publicado por NICOLÁS IGNACIO (5 intervenciones) el 15/07/2016 17:25:56
Córrigeme si me equivoco pero un .bas no es un módulo de clase, cierto? :P A la hora de copiar el codigo y pegarlo en un módulo de clase me salen un montón de errores, que el autocorrector de visual studio 2010 intenta corregir, hasta que los corrige, compila bien. Luego he de suponer que tengo que buscar el load_form de cada formulario que quiero añadir inactividad, cosa que no encuentro por ningún lado. Estoy con VS 2010. Alguna sugerencia?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo

Ayuda duda timer inactividad (principiante)

Publicado por Andres Leonardo (702 intervenciones) el 15/07/2016 17:30:07
Chuzo es q esto.era vb 6 en fin.. Dejame veer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda duda timer inactividad (principiante)

Publicado por NICOLÁS IGNACIO (5 intervenciones) el 15/07/2016 18:58:16
Ya decía yo :D Pos espero impaciente para ve rcómo sería en visual studio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar