Time of inactivity

G

Guest

I have a vb.net application that starts with a login form.
I would like to show it again after 5 minutes of inactivity of the
application.

Now, I use a timer and I start it in the application.idle event, but it
doesn't work fine, because it shows the login form every 5 minutes of
activity or inactivity of the application, without differences...

How can I solve it ????
Many thanks
nq
 
J

John M Deal

Seems like there are a number of variables involved here that you didn't
specify so I'm going to approach this as if you only had a single form
that was only monitoring itself (as opposed to your whole system).

It seems to me that you should probably put the timer into its own class
(separate from the forms of the application). That class should also
provide event handlers for the keyboard and mouse events for the form in
your application. When the form is instantiated I'd link up the event
handlers to the events in the form. The form instantiation code should
also start up the timer. Now anytime one of the event handlers fires
off, I'd reset the timer. Also be sure to turn the KeyPreview property
for the form on.

This concept should be able to be expanded to larger application. Hope
it helps.

Have A Better One!

John M Deal, MCP
Necessity Software
 
G

Guest

Thanks for Your answer Mr John
My timer is in a separate module and I thought at Your solution.
It'll surely work fine, but I hoped there was a different way, as a general
event to put in the application, to avoid to monitor the mouse event and the
key event for every form... I know I can do it with a general routine
instantiated with the addhandler, addressof method...

Many thanks for Your help...
Bye
nq
 
P

Paul Wardle

Look at the Application.AddMessageFilter method.

You can put in a hook at the application level. Look for mouse and keyboard
messages - make note of the time that you last saw one of these messages.

When your timer fires, check the time since you last saw a keyboard or mouse
message and then prompt if the TimeSpan is over 5 minutes.

Let me know if you need any further help.

Paul
 
G

Guest

GREAT !!!

This is the solution I was looking for...
I implemented a routine for the AddMessageFilter method:
It only stops and starts the timer every time a windows message (with msg
different from 275: the timer tick event) is processed in my application, in
order to reset the timer and restart its time.

I've only a little curiosity left:
What' s the difference between the timer.start method and the
timer.enabled=true instruction ??
It seems they start the timer in the same way resetting its time... so seems
there's no way to stop and restart the timer without reset the time
elapsed...
Is it right ???

Many thanks
bye
nq
 

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

Top