Task Options
Connects specifiers Time: and Watch* with logical OR operator (by default, they are treated as combined with logical AND).
Example:
#( test-mailbox \this task will be executed each hour or when the user presses "Alt-Ctrl+F12" Time: 0 * * * * * Also WatchHotKey: @^{F12} Rule: POP3-CHECK: "hostname" "pop3user" "password" Action: START-APP: e:\win\the bat!\thebat.exe /CHECKALL )#
This option tells nnCron to execute a task as a currently logged user. A task with this option can be executed only if there is a user who is authorized (logged) on this system.
Example:
#( interactive-job AsLoggedUser Time: 0 10 * * * * Action: START-APP: c:\msoffice\winword.exe )#
Use this option when nnCron is started as a system service (using System account). Don't use AsLoggedUser if you are running nnCron not as a system service, but as a regular application (see also Starting and Stopping nnCron).
A task with this option will be executed not only in normal mode, but in suspended mode as well.
Example:
#( test_hyperactive HyperActive Time: */5 Action: MSG: "Running in normal and suspended mode!" )#
This option is used to load user profile when launching processes (START-APP:,
START-APPW:).
When performing task authorization,
use this option for applications which require user profile (Outlook Express,
The Bat!, Internet Explorer etc.)
Deactivates the task
This option is also used in tasks which are intended to be started manually.
This word tells nnCron not to remove from crontab file a task containing option
RunOnce.
If a task contains both RunOnce and NoDel, it will be executed
each time the crontab is reloaded.
Example:
#( every_crontab_reload \ the task is executed on each reloading of crontab RunOnce NoDel Action: TMSG: "Crontab was reloaded!" 3
)#
This option forbids to make records about execution of the task in a log file.
It is convenient to use this option in tasks which are triggered too often or
with "secret" tasks which shouldn't be disclosed by record in a log
file.
Cancels authorization for this particular task if nnCron is set to run all tasks as as specified user (variable RunAsDefaultUser in nncron.ini).
OnceAHour
OnceADay
OnceAWeek
OnceAMonth
These options tell nnCron to run a task only once during an hour, day, week
or month, respectively.
Example:
#( daily-task
\ the task is executed only once a day at system startup Time: START-TIME OnceADay Action: START-APP: backup.bat )#
No matter how many time a computer is going to be reloaded during a day, the above task will be executed only once. You can also set time limits, e.g.:
Time: * 12-16 * * * * OnceADay
This task will be executed once on any given day, if the computer is working between 12:00 and 16:59. (And it will be started only once, even if the computer is reloaded. You cannot achieve the same result by using option RunOnce).
Information about the "worked-out" programs is recorded in file
etc\once.txt nnCron's installed directory.
Sometimes it may be necessary to cancel option OnceA*
in the task itself, e.g. so that time count is started anew after rebooting
the system. For this purpose, you can use words CANCEL or CLEAR-ONCE,
which removes the effect of OnceA* option from the current task.
Example:
#( test_clear_once Time: START-TIME OnceADay Action: START-APP: backup.bat \ clearing 'OnceA*' option if specified file exists FILE-EXIST: "c:\more_backups.sem" IF CLEAR-ONCE THEN )#
RunMissed
RunMissed: <hh:mm|days>
Sometimes tasks may have been missed because nnCron was not running. RunMissed option tells nnCron to run missed task 'at the first opportunity' - at the top of the first minute after nnCron startup. Missed tasks handling concept is described in more details in corresponding chapter.
Example:
#( test_missed \ the task will start at the specified time or \ at the top of the first minute after nnCron startup \ (if nnCron was not running at 12:00) RunMissed Time: 0 12 16 5 * 2003 Action: \ ... )#
The 'extended' option RunMissed: <hh:mm|days> allows you to specify maximum waiting time (in hours and minutes) that may elapse since this task was sheduled to run for the last time. The missed task will not be launched if specified waiting time value is smaller than the actual time elapsed since this task was sheduled to run for the last time.
Example:
#( test_missed1 \ the task will start at the specified time or \ at the top of the first minute after nnCron startup \ (if nnCron was not running at 12:00 and maximum \ waiting time do not exceeds 3 hours and 30 minutes) RunMissed: 03:30 Time: 0 12 Action: \ ... )# #( test_missed2 \ the task will start at the specified time or \ at the top of the first minute after nnCron startup \ (if nnCron was not running at sunday, 12:00 and \ maximum waiting time do not exceeds 3 days) RunMissed: 3 Time: 0 12 * * 7 Action: \ ... )#
Note, please, that you can use RunMissed: 0 syntax to disable missed tasks handling.
When you are using plain RunMissed option (instead of extended RunMissed: <hh:mm|days>) the value of nncron.ini variable DefaultRunMissedTime: is used as RunMissed argument (360 hours or 15 days).
You can manage missed tasks handling using nnCron GUI: checkboxes to turn RunMissed option on/off and input fields to enter maximum waiting time are available in New Task, New Reminder
and Edit Task dialog boxes.
See also: RunMissed?
A task with this option will only be executed once, after which it will be
deleted from the crontab file.
Deleted tasks are automatically saved by the program in a special inactive crontab
file deleted.tab which is located in nnCron's installed directory.
This option is mainly used in reminders (see Reminder:).
This option prevents simultaneous execution of two or more instances of the same task. While a task with SingleInstance option is being executed, no other instance of the same task cannot be started, and any attempt to start it will be suppressed.
In order to prevent a simultaneous execution of several different tasks (and two or more instances of the same task as well), one can use words GET è RELEASE. GET takes hold of a specified semaphore, and RELEASE releases it. These words use address of a variable (which is left on the stack after the variable has been used in the task) as their parameter. The succeeding tasks will be started, but they will be actually executed only after the preceding task releases the semaphore.
Example:
#( test_task1 \ Messages "task1" and "task2" will never appear at the same time. VARIABLE SEM1 Action: SEM1 GET MSG: "task1" SEM1 RELEASE )# #( test_task2 Action: SEM1 GET MSG: "task2" SEM1 RELEASE )#