Events
TODOTODO: Review and check that all events are documented.
The available selection of events covers many different use cases.
Remember that you can combine multiple events using a logical relationship to create more complex scenarios.
Countdown
Count down a specified amount of time. This Event is considered "triggered" when the timer reaches zero.
Example uses:
On Time
Event is triggered when the current time (as displayed in the system tray) reaches the specified time.
Example uses:
Winamp Stops
Event periodically checks the playback state of Winamp. The event is triggered once it is detected that application is no longer playing the media.
Example uses:
Implementation notes:
CPU Usage
Periodically check the processor usage and trigger event when the usage stays above (or below) the specified mark for the specified amount of time.
Example uses:
Network usage
Check the network's load (select from total, upload only, or download only); and if it falls below specified limit for the specified duration, then the event is triggered.
Example uses:
Implementation notes:
The actual measurement of the network usage is taken every second in all configurations. If the averaging option is disabled, then all measurements within the configured period of time (duration) must stay below the threshold in order to trigger the event. If the averaging option is enabled, then the average of all measurements within the configured period of time (duration) must stay below the threshold in order to trigger the event.
User Inactive
Track the time of user's last mouse and keyboard activity. Trigger the event when the user has been inactive for the specified period of time.
Methods for monitoring user inactivity:
GetLastInputInfo API. Captures activity only of the initiating user session. The most stable and the least intrusive approach.
Low Level Hook - Uses SetWindowsHookEx(WH_KEYBOARD_LL) and SetWindowsHookEx(WH_MOUSE_LL) API. Captures activity from all user sessions. Applied without injection into foreign processes to achieve a less intrusive effect, contrary to the official documentation, so it may stop working in future versions of Windows.
Injection Hook - Uses SetWindowsHookEx(WH_KEYBOARD) and SetWindowsHookEx(WH_MOUSE) API. Captures activity from all user sessions. A tiny dedicated library file is injected into all foreign processes to capture user activity across all applications. This is a well established approach which may yield better results in some cases, but it is the most intrusive approach.
Example uses:
Battery Low
Monitor power battery level and trigger event when level drops below specified level.
Example uses:
Window Closes
Monitor opened windows for the specified title match. Event is triggered when specified title does not match any of the opened windows.
*Firefox*.
If you do not use wildcards, Shutter will look for an exact match (if the actual Window name has more characters compared to the specified string, Shutter will treat it as "not matching").
Note: Be careful when specifying the window name: The text should match with what you see in the Title Bar of the application (the top bar of the application's window). Sometimes the Title Bar shows the file that is opened in the application, instead of the application's name.
Example uses:
Process Stops
Monitor all processes that match the specified filename. Event is triggered when the specified filename is not found in the list of executing processes.
Example uses:
Ping Stops
Ping the specified host and trigger when host is not responding for the specified period of time. Useful for monitoring availability of network services.
Example uses:
File Size
Periodically check the size of the specified file and trigger the event when the selected condition is met.
The list of available conditions:
Internally, when the file or directory does not exist, it has an effective size of "-1".
Example uses: