Is it possible to use the Remedy OLE Automation command to make Win32
API calls?   

If so, then with just two calls (one to GetTickCount in kernel32 and
GetLastInputInfo in user32) I can determine the user's idle time.

I have been searching but have not found an answer yet. 

Stephen


-----Original Message-----
From: Action Request System discussion list(ARSList)
[mailto:[EMAIL PROTECTED] On Behalf Of Heider, Stephen
Sent: Tuesday, August 01, 2006 10:59 AM
To: arslist@ARSLIST.ORG
Subject: Re: Inactivity Event or Screensaver Event

Carey,

The user prompt ever N minutes would certainly work.  Knowing my users,
they would not want to answer a prompt throughout the day. Plus, our
company and development group is very big on automation.  If someone can
be done automatically, then it almost always is automated.  We are up to
8 systems in which Remedy is integrated.
 
The executable is only 7KB.  Your suggestion about using Remedy to copy
the executable to the user's computer is excellent.  I hadn't thought of
that before.  Thanks.  I would still need to get approval to blanket the
company with the exe. It may be a slight challenge.


Stephen


-----Original Message-----
From: Action Request System discussion list(ARSList)
[mailto:[EMAIL PROTECTED] On Behalf Of Carey Matthew Black
Sent: Tuesday, August 01, 2006 10:45 AM
To: arslist@ARSLIST.ORG
Subject: Re: Inactivity Event or Screensaver Event

Stephen,

How about a "you must be present to win" model instead?

Why not have your "every N minutes" logic actually be to prompt the user
to "Click Continue or you will be auto logged out"? If N is the same
time as your Mid-tier session timeout then you have a good, matching
model too. I would think an active link "on interval" that opens a
dialog attached to any forms you are concerned about would start the
process. Then the dialog could have a second "on interval"
active link that would do the "timeout" logic. When the user clicks
"Continue" then you can trap the "activity" and just close the dialog
without exiting the User Tool.  And if you want certain user activity to
also delay the start time of this interval, then you could do that too.
With the Global field value idea. However, I would limit the things that
qualify for that condition as much as possible. Things like "Window
Open","after Submit", "after Modify", would be my likely candidates.
Button clicks do not count in my book. :)

Oh.. one other idea.. if you can find a "place to put the executable"
on every one's pc and it is small enough, then maybe you could attach it
as an attachment and use the User Tool to "install it" on their PCs?
(Just a thought.)

HTH..


--
Carey Matthew Black
Remedy Skilled Professional (RSP)
ARS = Action Request System(Remedy)

Solution = People + Process + Tools
Fast, Accurate, Cheap.... Pick two.
Never ascribe to malice, that which can be explained by incompetence.



On 8/1/06, Heider, Stephen <[EMAIL PROTECTED]> wrote:
> 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

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

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

Reply via email to