views:

20

answers:

1

We have a third party application running. It shows login dialog when idle for 20 minutes. We need to prevent the application to display login screen.

We do not have any idea how idle state is handled internally in that application.

We have done the follwoing with no luck.

  1. Created an small application in c# which focus it after every 5 minutes (using SetForegroundWindow()) and send a BM_CLICK message to one of its child window. Does not work.
  2. focus it after every 5 minutes (using SetForegroundWindow()) and move the cursor few pixels then restore cursor at its previous position. This does not work too!

Is there any other way to achieve the goal?

A: 

If third-party application detects idle state using GetLastInputInfo function, you can try SendInput to reset an idle state. Find some input event that doesn't affect normal program execution, like mouse movement to 1 or even 0 pixels.

Alex Farber
I tried this. Read my question again. I used sendmessage to achieve this.
Manjoor
SendInput is not equal to BM_CLICK. Anyway, I am happy to read your question again, thanks :)
Alex Farber
Ok thanks let me try with sendinput
Manjoor
Same... SendInput does not work either. That was my guess they are not using GetLastInputInfo(), instead they have implemented something more interesting..
Manjoor