>I am looking for a way to detect inactivity and shutdown my app in a clean way.....The way some frameworks do it is every base class has code in InteractiveChange and ProgramaticChange - and a few others - that reset a timer every time you press a key or do something. If there is inactivity, the main app timer will fire, thereby triggering a controlled shutdown.
Note that to do a controlled shutdown you would have to trigger every open form's and object's TableRevert() and RollBack (if a transaction is open), as you could have dirty buffers from the guy that started changes to a record and went to lunch in the middle of the session. Naahh. Users don't do that, do they?
HTH