Contents of the CHRON.DOC file
Chron is an application that will dispatch programs and
messages at a given time and date. These tasks can be
scheduled to run one time only, or on a daily, weekly,
weekday, monthly or annual basis.
o Copy the *.MSG files to a subdirectory in your DPATH.
These are message repository files that are structured
like the system files OSO001.MSG and OSO001H.MSG.
o Copy the *.EXE file to a subdirectory in your PATH.
o Copy the *.DLL file to a subdirectory in your LIBPATH.
o Copy the *.HLP file to a subdirectory in your HELP
The first time the program is started, you will be prompted for
the fully qualified filespec that will be used to store the
tasks when the program is exitted and restarted. There is no
restriction on the filename as long as it is a valid FAT file
It is assumed that this file does not exist. If there is a
file that exists with that name, you will be asked to confirm
the file name. The author's choice of a file name is
CHRON.DAT. If you do not specify a fully qualified name, the
program will automatically fully qualify it based on the
current drive and directory.
Once the program is started, you add tasks to be scheduled by
selecting the "Schedule" menu item.
Other actions such as changing the name of the task database or
editing the existing tasks can be found under the "Action" menu
Since the application is a PM program, little explanation is
needed in its operation.
The code allows for the entry of tasks (messages or programs)
and looks to see if the current time is later than the time set
for the task. If so, that task is started. While the timer
pops every second, the task list is scanned for tasks only when
the minute or the number of tasks change.
After a task is dispatched the time for the next dispatch is
calculated. If it's a "one time" task the task is dropped from
the list. If it's a daily task, it is scheduled for the same
time the next day. If it's weekly, it's scheduled for same
time next week, etc.
Some random notes about the operation of the code follows:
o The program names entered when scheduling a program to
start should be fully qualified names. The entry on
this dialog was purposely patterned after the Program
Properties dialog on the start groups.
o The code computes what the "same" time next month is in
a strange way. A problem arose when a person wanted to
schedule a task for the LAST day of the month and
selected, say, September 30 for the start day. When the
task executed and was scheduled for October, I didn't
feel it was appropriate to schedule for Oct 30, since
Oct 31st is the LAST day of the month. Eventually the
LAST day of the month would creep back to the 28th when
it was scheduled to run in February.
Therefore, the algorithm works as follows. If a
scheduled day is selected that is within the last five
days of the month, I assume you are scheduling relative
to the last day of the month. Therefore, if you
scheduled a task to run on September 27th, the next
month's time would be computed as October 28th.
o To schedule a .CMD file, you must start a copy of
CMD.EXE. For program name, enter C:\OS2\CMD.EXE. In
the parameters field, enter:
where "command" is the batch file you want to execute.
This program will operate only under OS/2 1.2 and above.
This is a multi-threaded PM program written entirely in
Microsoft C 6.0.
The author assumes no liability for any damage or loss of data
caused by this program.
This is a Shareware program. If you like this program, and use
it on a frequent basis, a registration fee is encouraged.
The shareware charge is:
$15 for individuals.
$25 per copy for companies with 25 or less employees.
$40 per copy for companies with 26 or more employees.
Site license agreements are available on a case by case basis.
Please send any correspondence to:
1022 N. Cooper
Olathe, KS 66061
You are more likely to reach me on Prodigy than CIS, as I
frequent that board more.
Any comments, positive or negative, are welcomed. Enjoy.
1.0 Base Code
1.1 Added monthly support.
Added "date to start on or after" to all of the dialogs.
1.1A Fixed bug for not dispatching properly based on time.
1.2 Chron "remembers" where it was positioned.
1.3 Changed the message window to a dialog box with a combo
box, title bar, and min button.
Added a yearly option
Sorted the lists in dispatch (time) order.
1.4 Cut/Paste/Copy into and out of the message box.
2.0 Added help.
Added an alarm option for the messages.
Support for workday-only dispatching where you get to
pick what the work week is (default Mon thru Fri)
Add an alarm option for the messages.
2.1 Added selection of time and date from a calendar
Fixed bug with workday dispatch not starting on a valid
Automatically searches the path for the filename to start.
2.2 Changed the 3D effect on the calendar to move the characters
on the calendar day button when it is pressed.
Moved some of the buttons around on the dialogs.
2.3 Added more extensive help.
Fixed the "stuck button" bug. (If a button was pressed and
the mouse was moved off the window, the button would remain
in a "down" state).
PLANNED FUTURE ENHANCEMENTS
o Support for Nth working day of the month that would
o Suppression of "late" task dispatch. If you schedule a
daily task and the program has been shutdown for 6 days,
it will start the program 6 times when restarted. I
want to make this an option.
o Make an option for the adjust relative to end of month
o Automatically dispatch CMD.EXE for command files.
o Optionally sort the lists in alpha order.
o Determine a way to allow expressions such as:
Third Wednesday of the month.