[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] 24x7 Script Archive


Running jobs during user "idle" times

There is no easy way (using 24x7 Scheduler) to correctly detect idle time in Windows 95/98. However it is relatively simple under Windows NT. You may want to create a "dispatcher" job of 24x7 script type that will use WindowGetActive statement to detect is a screen saver is running. If it is running then this job will trigger other jobs directly, or via creation of various semaphores (files, emails, user-defined methods).

Note that WindowGetActive returns the handle of the foreground window, that is, the window that the user is currently working with. The proper handle is returned when the desktop that the application is running on is active; however, when another desktop is active, WindowGetActive returns 0.

The application desktop is one desktop. Other desktops include the logon and screen saver desktops. Therefore, if WindowGetActive returns 0, it means that either screen saver or logon dialog is active. You can use screen saver settings to regulate (via "Wait" interval) user-inactivity threshold.

Note that due to architectural differences between Windows 9x and NT, WindowGetActive always returns non-zero value under Windows 9x. This is expected behavior.

Additional notes: You must use 24x7 Scheduler v1.3.1 or above in order for the WindowGetActive statement to work correctly under Windows NT.