"I haven't found anything to tell me if the mouse has moved"
Perhaps Tk::MouseGesture could be modified to suit your needs.
| [reply] |
I'm in a linux environment, but the idea is the same. Keyboard focus and mouse focus is neccessarily connected only to a window that is opened via a program. How else could your applications know which of them is supposed to be responding to the current mouse/key events? I really doubt that Term::ReadKey will capture all keyboard activity in ALL applications, without a global grab(which would interfere with normal operations). When you want to intercept all mouse/key events, regardless of where( in which application) the focus is; you need to go down to the kernel level, and put in hooks that just tee off to files any mouse/keyboard events at the device level. Perl will not do this for you, but on Windows, Employee Loggers are widely available so that your boss can watch all your moves. Just google for "employee logger keyboard mouse snooper Windows". Doing that essentially puts a spy virus into your computer, and I suspect it is why many employers prefer MSWindows, because it makes spying on all employees easy.
Linux has a kernel patch to do it also, but it dosn't come included as standard, as on MSWindows. :-) Write to WIndows Event Log may yield some clues.
| [reply] |
BrowserUK provides a fully working example in Re^3: Win32 idle state (Updated), using Win32::API (or rather Win32::API::Prototype, but see my reply) to check when windows last registered any user input. If you need to know the current tick count you can use GetTickCount() in the Win32 module. Be aware of that the tick count wraps when it becomes too large, so you probably want check against that if you computer runs for more than 49 days.
lodin
| [reply] [d/l] |