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

Inactividad del mouse y teclado VB

Estas en el tema de Inactividad del mouse y teclado VB en el foro de Visual Basic clásico en Foros del Web. Hola que tal, esperando que me puedan ayudar con lo siguiente: Por medio de Vb 6.0 como puedo saber que el usuario no ha movido ...
  #1 (permalink)  
Antiguo 21/05/2009, 14:04
 
Fecha de Ingreso: julio-2008
Mensajes: 116
Antigüedad: 15 años, 9 meses
Puntos: 1
Inactividad del mouse y teclado VB

Hola que tal, esperando que me puedan ayudar con lo siguiente:

Por medio de Vb 6.0 como puedo saber que el usuario no ha movido el "Mouse" u oprimido alguna tecla. Pero que no presisamente este en la aplicación o en primer plano o tenga el focus. Espero haber dado a entender.

Un ejemplo; el Skype despues de un determiando tiempo (5 mins por ejemplo sin actividad en el ordenador) cambia su icono a ausente.

Bien que tengas un buen día!! saludos, desde ya mil gracias!!!

Última edición por Aioros-jms; 21/05/2009 a las 15:53
  #2 (permalink)  
Antiguo 21/05/2009, 18:33
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Inactividad del mouse y teclado VB

Hola, con la api llamada GetQueueStatus podes saber el tiempo inactivo...un ejemplo que se cierra despues de 5 segundos de inactividad..

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


saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #3 (permalink)  
Antiguo 22/05/2009, 14:58
 
Fecha de Ingreso: julio-2008
Mensajes: 116
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Inactividad del mouse y teclado VB

Hola muchas gracias por tu aporte, me es de mucha ayuda, es precisamente lo que necesito, pero hay un detalle, solo que funciona solo si la ventana esta activa, pero por ejemplo si ando en el explorador de windows, etc, (eso quiere decir que estoy utilizando el ordenador), de acuerdo al codigo proporcionado, requiero que no se cierre el formulario si ando haciendo algo en el ordenador.

De ante mano gracias!!! espero que me puedan ayudar con ese pequeño detalle. saludos que pasen un tarde agradable.

Última edición por Aioros-jms; 22/05/2009 a las 15:26
  #4 (permalink)  
Antiguo 24/05/2009, 05:20
 
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Inactividad del mouse y teclado VB

Hola, mira este código. Lo consigue con relativa simplicidad, sin necesidad de subcalsificaciones que siempre son delicadas. Ejecútalo y espera unos 10 segundos.... incluso en segundo plano.

planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=66065&lngWId=1

(ponle delante las tres w pues el sistema del Foro me considera novato y se ve que no se fía, no me deja poner enlaces)

Un saludo.
  #5 (permalink)  
Antiguo 24/05/2009, 11:48
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Inactividad del mouse y teclado VB

Cita:
Iniciado por Aioros-jms Ver Mensaje
Hola muchas gracias por tu aporte, me es de mucha ayuda, es precisamente lo que necesito, pero hay un detalle, solo que funciona solo si la ventana esta activa, pero por ejemplo si ando en el explorador de windows, etc, (eso quiere decir que estoy utilizando el ordenador), de acuerdo al codigo proporcionado, requiero que no se cierre el formulario si ando haciendo algo en el ordenador.

De ante mano gracias!!! espero que me puedan ayudar con ese pequeño detalle. saludos que pasen un tarde agradable.
pues es simplemente agregale para que saque la ventana activa tambien y si la ventana activa es de tu aplicacion ahi recien empieza a contar...aclaro que eso no usa Timers...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #6 (permalink)  
Antiguo 25/05/2009, 15:56
 
Fecha de Ingreso: julio-2008
Mensajes: 116
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Inactividad del mouse y teclado VB

Hola que tal, de nuevo mil gracias por sus aportaciones, estuve investigando y resolvi mi cuestion con lo siguiente:

Código:
    Option Explicit
    Private Declare Function GetTickCount Lib "kernel32" () As Long
    Private Declare Function GetLastInputInfo Lib "user32" (plii As Any) As Long
    Private Type LASTINPUTINFO
        cbSize As Long
        dwTime As Long
    End Type

Private Sub Timer1_Timer()
    Dim lii As LASTINPUTINFO
    lii.cbSize = Len(lii)
    Call GetLastInputInfo(lii)
    With Label1
    .Caption = FormatNumber((GetTickCount() - lii.dwTime) / 1000, 0)
    .Refresh
    End With
    If CInt(Label1.Caption) = 10 Then
        MsgBox "Timed out."
    End If
End Sub
Con el código anterior se efectua exactamente lo que quiero. Como me acabo de dar cuenta de sus respuestas y no me a dado tiempo de checar sus aportaciones, pero con lo que nos dijo el amigo seba123neo no le entendi bien. Y con lo poco que vi sobre lo escribio Marcelote, pues creo que es solo para el "mouse" estaria faltando lo del teclado. Pero bueno de nuevo gracias. Que pasen una excelente tarde.

Saludos.!!!
  #7 (permalink)  
Antiguo 18/05/2015, 04:15
 
Fecha de Ingreso: diciembre-2014
Mensajes: 2
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Inactividad del mouse y teclado VB

Hola! En vb.net como es el código?? Traté de adaptarlo pero no me hace lo que necesito

Saludos!
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 17:20.