Idle time

G

Guest

Hi everyone

I want to now how long the computer is idle. Is there any easy way to do
this in vb.net 2005. Before (in VB6) I checked if the mousepointer hade been
moved.

Thanks
/Nettan
 
K

Kevin

This is code someone else gave me. It detects mouse movement. I use it
to log the person out of my program if they leave it the set number of
minutes. sysLogOffSecs is the number of minutes (in seconds) I set to
log them off.


Dim MousePos As POINTAPI 'holds mouse position
Dim mdtLastKBorMouseEvent As Date
Dim mbIsIdle As Boolean


Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
Call subDetectIdle()
If mbIsIdle Then
'log them off or whatever
End If
End Sub


Public Sub subDetectIdle()
Dim bIsIdle As Boolean
Dim tCurrentPos As POINTAPI
Dim lDiff As Integer

bIsIdle = True
tCurrentPos.X = CInt(Windows.Forms.Cursor.Position.X.ToString)
tCurrentPos.Y = CInt(Windows.Forms.Cursor.Position.Y.ToString)

'Mouse Moved?
If (MousePos.X <> tCurrentPos.X) Or (MousePos.Y <>
tCurrentPos.Y) Then
bIsIdle = False
MousePos.X = tCurrentPos.X
MousePos.Y = tCurrentPos.Y
End If

If Not bIsIdle Then 'Not idle...
'Not idle... Update Current Time variable
mdtLastKBorMouseEvent = Now
'Make sure the module level var is set correctly
mbIsIdle = False
Else
'Currently Idle. See how long
If mbIsIdle = False Then
'Number of seconds elapsed?
lDiff =
DateDiff(Microsoft.VisualBasic.DateInterval.Second,
mdtLastKBorMouseEvent, Now)
If lDiff >= sysLogOffSecs Then
mbIsIdle = True
End If
End If
End If
End Sub
 
K

Kevin

I forgot to add this to the declarations:

Private Structure POINTAPI
Dim X As Integer
Dim Y As Integer
End Structure
 
G

Guest

couple of problems with that....one is it only detects mouse movements and
two its only checking your app. so if someone used ALT + TAB to change out of
ur app, your app wont receive mouse moves. also, if theyre typing, it wont
recognize that. you can use a Mouse Hook and check the length of time between
the callbacks of that, or u can check the APIs. there was a post around here
a long while back that had that, but it seems to have been deleted....
 
C

Cor Ligthert [MVP]

Nettan,

I think that you first have to tell, what you call Idle, by instance the
garbage collector is busy in program Idle time, so the computer is than not
in Idle state.

Cor
 
G

Guest

Hi

What I meen with idle is that no person is using the computer. What i'm
planning to do is to write a program to log how much time my kids is spending
at the computer.

/Nettan
 
K

Kevin

No, it doesn't matter if the program is minimized, it will detect
mouse movement on the computer, not just the program.
You'll have to use APIs to detect key presses.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

Track Idle Time 1
Application Idle Time 1
Idle event 2
How to count idle time 1
How do I detect application idle time? 4
mousepointer 4
Force Close database after idle time 7
UDTs (as was vb6) 113

Top