Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: BoboV1 en 22 Octubre 2010, 01:29 AM

Título: Pequeño Problema :O! - Inactivo?
Publicado por: BoboV1 en 22 Octubre 2010, 01:29 AM
Hola foreros!

Tengo este codigo :

Código (vb) [Seleccionar]
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 Shell ("notepad.exe")

End Sub

Private Sub Command1_Click()
On Error GoTo asd
Label2.Caption = "Tiempo de inactividad" & " " & Text1.Text & " " & "Segundos."
Call Inactividad(Text1.Text)
Exit Sub
asd:

Label2.Caption = "Error, Pone Los Segundos ^^"

MsgBox "No pusiste la cantidad de segundos ;)"

End Sub

Private Sub Command2_Click()
MsgBox "En La V2 ^^"
MsgBox "Creado Por Nicolas Petrocco"
End Sub

Private Sub Command3_Click()
Form2.Show
End Sub

Private Sub Form_Load()
Me.Show


End Sub

Private Sub Form_Unload(Cancel As Integer)
bCancel = True
End Sub


Lo q hace es abrir el notepad a los 2 segundos de inactividad.

El problema: Es considerado inactivo cuando NO SE PASA EL MAUS SOBRE EL FORM!

pero osea, si yo estoy navegando y lo configuro para q alos 2 segundos se abra el notepad, tengo q pasar el maus constantemente sobre el form... yo considero "Inactiva la pc" cuando EL MAUS ESTA COMPLETAMENTE QUIETO! (No cuando no lo paso sobre el form)


Como lo puedo solucionar?
Título: Re: Seba123Neo, No Te Entendi ^^!
Publicado por: raul338 en 22 Octubre 2010, 01:39 AM
En el timer que usas (supongo) usa la API GetActiveWindow o GetForegroundWindow y comparas el hwnd devuelto con el de tu form, si es asi, haces lo que tengas que hacer y si no, no haces nada
Título: Re: Pequeño Problema :O! - Inactivo?
Publicado por: BoboV1 en 22 Octubre 2010, 02:13 AM
Modifique el tema, capaz entienden mejor xD!

Porq a la respuesta de Raul no la entendi ;D
Título: Re: Pequeño Problema :O! - Inactivo?
Publicado por: BoboV1 en 22 Octubre 2010, 20:10 PM
Nadiee Sabe :$ ?
Título: Re: Pequeño Problema :O! - Inactivo?
Publicado por: Psyke1 en 22 Octubre 2010, 22:17 PM
.

En vez de lo de pasar el mouse por el ratón, se me ocurre que podrias mirar la posicion del cursor con api GetCursorPos comprobar si varía cada 500 ms (por ejemplo) , si lleva X veces sin variar entonces abres el notepad. Me explique?
Es solo una idea... ;)

DoEvents! :P