List,

I previously submitted an enhancement to add an Inactivity event that
can be detected by an active link.  I don't think this feature was added
to ARS 7.0.

I know that one way to manually detect user inactivity is with a global
display only datetime field on all forms the user may use, combined with
workflow that updates this global with $TIMESTAMP $ each time the user
"does something".  Does something = the user actually clicked a button,
performed a search, submitted a ticket, etc.  This would need to ignore
auto-refreshes of tables or other automatic processes not manually
initiated by the user.  This can be done but requires some tedious
programming.

All our computers have an automatic 20-minute screensaver that locks the
Windows screens.  How can you detect that the Windows screensaver is
active and/or the computer is locked?

Instead of detecting the screensaver or lock status, I can pull the
system idle time using VB.Net. *I converted it to .Net from here:
http://vbnet.mvps.org/code/system/getlastinputinfo.htm

Module Module1

    Private Structure LASTINPUTINFO
        Dim cbSize As Integer
        Dim dwTime As Integer
    End Structure
    Private Declare Function GetTickCount Lib "kernel32" () As Integer
    Private Declare Function GetLastInputInfo Lib "user32" (ByRef plii
As LASTINPUTINFO) As Integer

    Sub Main()
        Try
            Dim lii As LASTINPUTINFO
            lii.cbSize = Len(lii)
            Call GetLastInputInfo(lii)
            Console.WriteLine((GetTickCount() - lii.dwTime) / 1000)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
        End
    End Sub

End Module
 
This returns the number of system idle seconds.  An active link would
auto-run every 5 minutes (for example) checking to see if a threshold
was reached. 

This works but there are two reasons why I want to avoid this approach.
1. It runs in a separate process, which takes at least 1 second to
initialize.  2. The clients would need to run this from a network share
instead of locally.  This will add 1-3 seconds depending upon current
WAN conditions.  Managing the distribution of this console app on every
computer or every LAN server is not currently an option.

I am looking for a solution that would run from within workflow that is
directly supported, something like OLE. I realize that this won't work
for mid-tier.

Any suggestions?  Thanks in advance. 

I know if a solution is found that many companies will benefit from it.
I think the most obvious benefit would be to pause all table
auto-refreshes after a certain period of idle time.  

As many of us have experienced, users sometimes leave their computers on
24 hours a day and logged into Remedy.  Just think of the amount of data
being dragged across the WAN because of all those table auto-refreshes
to computers where no-one is there.  Pausing refreshes could provide a
boost in performance at certain large companies.

 
Stephen

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at http://www.wwrug.org

Reply via email to