Communications Time Monitor Version 2.5

Copyright © 1995, Scott A. Craig - All Rights Reserved

NOTES:	The dialogs used in the examples in this Help file were created on a system running Windows 95.  You may notice some differences in the placement of the minimize, and maximize boxes, and the system menu at the top of the dialogs.  Windows 95 places all three of the controls on the right side of the dialog, whereas Windows 3.1 and Windows for Workgroups 3.11 place the minimize and mazimize boxes on the right side, and the system menu on the left.  Also, when the Maximize box is disabled, it is not displayed on previous versions of Windows.  Windows 95 still displays the maximize box, even though it has been disabled.

Regardless of how accurate any Timer software is, if you are on a Time Limited account, it is still important to occasionally check your  Official connect time on your provider.  The difference in the point where a Timer program begins and ends logging time and end time as opposed to the points at which your provider begins and ends can build up.  It is strongly reccommended that you occasionally request the Official time from your provider, and update the counters in this software to match exactly.

Read These Sections Before Using This Software

 Copyright Information and Disclaimer

 Problem Reports and/or Reaching the Author

General Information ...

 Introduction

 Whats New For Version 2?

 Program Operation

 Program Configuration

 Connection Configuration

 Example Configurations

 Command Line Parameters

 INI File Structure

 Revision History


PROGRAM CONFIGURATION

Use this option to configure the programs options.  When the command is selected, this dialog box will be displayed.  You can click on any of the controls shown here to get a description of what that control does.  The dialog is divided into two sections.  The top half of the dialog defines how the program starts its timer.  The bottom half defines how the program starts, and ends.  In the top half are two buttons labeled Start Timer When Carrier Is Detected On COM1: through COM4: and Manual Start Only.  When Manual Start Only is selected (the default) the program will begin timing only when the Start button on the main dialog is pressed.  When Auto Detect Start is selected, the program will automatically detect when a carrier to your modem is present, and begin timing at that point.  The serial port labels (COM1: through COM4:) are initially dimmed.  These can only be selected when Auto Detect Start is selected.  In Manual Start mode, they are not used, and therefore have no meaning.  After selecting Auto Detect Start, you must select the serial port that your modem is connected to (COM1 through COM4) for the Auto Detect feature to work properly.

The bottom half of the dialog sets options that control how the program starts and ends, and whether it automatically Resets the session timer each time the timer is started.

AUTO RESET ENABLED controls whether or not the Session counter is reset to zero each time the timer is started.  When this option is selected, the program will reset the session timer to zero each time a session is started.  If it is not selected, the session timer will simply start counting from where it left off each time a session is started.

CREATE LOG FILE - this option was added for version 2.3, and causes a log file of all connect sessions to be maintained.  The file is an ASCII file in the same directory as the program file, and is named CCM20.LOG.  It will contain a listing of each session, as well as the total accumulated connection time, and the total accumulated prime time.

START MINIMIZED defines whether the program starts as a full dialog box (the default) or as an Icon (in Minimized form).  There is an additional Check Box beside this one labeled ONLY BY COMMAND LINE.  This button is very handy if you start the program from a Script file, and you would like it minimized, but still want the program in its full-size mode when you start it normally.  If this button is checked AND START MINIMIZED is checked, when the program receives a parameter passed on the command line, it will start minimized.  If the START MINIMIZED button is checked, and this button is NOT checked, the program will ALWAYS start in a minimized format.

EXIT ON CARRIER DROP controls whether or not the program will end itself when it senses that the carrier from the modem has been lost.  If this box is checked, the program will close itself as soon as the carrier to the modem drops.  As with the Start Minimized command, there is a  check box to modify this command so that it is only active when a parameter is passed on the command line.  It is also very handy when you launch the program from a Script file such as used with Trumpet Winsock.  Use the script file to dial your Internet Provider, and when you execute the Bye command and the carrier drops, the program will automatically exit.  This prevents having multiple timers running if you dial several times.

DISPLAY SUMMARY will also only be enabled if EXIT ON CARRIER DROP is enabled.  If this check box is enabled, a message box displaying the session time and total time for the selected connection will be displayed when the program exits.

DISPLAY UPDATE INTERVAL - This value represents the number of milliseconds (1/1000 of a second) between display updates.  The default of 980 will cause the display to be updated approximately once per second.  The time may vary slightly due to the length of time it takes to process messages, but this will NOT affect the actual time, only the interval at which the time is displayed.  You can change this value if you want to, but dont go above 1 second (1000 in the edit field) or the display may be erratic.

SAVE WINDOW POSITION - When this option is on, the current position of the window (assuming it isnt an Icon) will be remembered each time the program ends.  Put the window where you want it, turn this option on, and it will be displayed in the same position the next time you run it.

STAY ON TOP - This option is like the option in Windows Help that allows you to keep the help file on top of all other windows.  When this option is turned on, the dialog box (or icon) will always stay on top of other windows on your desktop.

ICON DISPLAYS: TOTAL/PRIME TIME OR SESSION - This set of buttons determines what value is displayed when the program is Minimized as an icon.  If Session is checked, the session time will be displayed with the icon.  If Total / Prime Time is checked,  the value selected by the Prime Time / Total Time buttons on the main dialog will be displayed.  You can also select the Icon Display mode from the main display by clicking the left mouse button with the cursor inside the desired section, just be careful not to hit the [RESET] button!.  The section that will be displayed on the icon is denoted by having its title in brackets, as in [Session] or [Total Time].


REVISION HISTORY

Version 1.0 was a very simple little program, but due to requests by other users, and things I thought of myself, each release adds some new features.  It is becoming quite complicated for such a small program.  This list of revisions will explain what has been added between each version.

Version 1.0	06/04/95	Initial release of Version 1.0.

Version 2.0	06/06/95	Initial release of Version 2.0.  Added "Launch" capabilities, "Start Minimized", and "Edit" dialog.

Version 2.0a	06/14/95	Fixed a bug in the display function that caused a GPF when the total time exceeded about 10 hours.  I know better than to use 16-bit Ints for long values!

Version 2.1	06/18/95	Added a configurable MessageBox to display the session and total times if the program is exited when the CD drops.

Added the ability to remove a Connect without having to edit the INI file.  Revised Exiting logic.

Revised timers to resolve clock running slow, and added display update variable to the config dialog.

Fixed the problem that kept the Help file from being displayed when the Help button was clicked.

Since there was a probability that people have already configured Script files to use the program name CCM20.EXE, the name of the executable and help files was not changed even though the version changed.

Version 2.2	07/01/95	Added "Warning" functions.  The program can be configured to display a "Warning" when the end of your time period is close.  The Warning will turn the display characters red, and play a sound file.

Added an optional Prime Time section.  The program can be configured to check for Prime Time or Non-Prime Time.  The "Totals" section of the display can be toggled between the two values.  A red or green bitmap on the display indicates whether it is currently Prime Time or not.

Added option to allow the Icon to display either the Session or Total time.  If it is set to display the Total time, it will either display Total or Prime depending on the setting for the Totals section of the display.

Fixed the bug that caused the Version 1.0 title to be displayed on the dialog after it was restored from an icon.

Completely reworked the timing functions to make them more reliable and accurate.

The Window position is now saved between sessions.  A configuration option allows this feature to be turned on or off.

Added a configuration feature to keep the monitor on top of other windows (such as Help's Always On Top).

Revised the [LAUNCH] and [AUTO] button operation.  Now, if the program is configured for automatic operation, and the [LAUNCH] button is pressed, the [AUTO] is automatically "Clicked" also.

Fixed the problem that caused multiple INI files to be generated.

Fixed the problem that caused the CLOSE selection on the system menu not to work.

Fixed the problem that caused the MAXIMIZE selection on the system menu to actually maximize the little main dialog!

Reworked the HELP file to make it more understandable.

Version 2.2b	07/02/95	Fixed the problem that caused the session time to be reset when the total time is reset.

Fixed a problem that caused the Prime Time not to be detected and updated properly.

Version 2.3	07/08/95	Shortened the configuration dialog so that it would fit on a 640x480 screen.

Fixed a problem that occasionally caused the control buttons to not be displayed properly.

Fixed the problem that caused the main dialog to be improperly sized when using "Large Fonts"

Added the Automatic Reset capability to the Total/Prime Time timer.  They can be set to automatically reset on a Daily, Weekly, or Monthly basis.

Added a logging function.  This function writes a log file into the same directory as the program, and keeps a log of all sessions.

Note:  Version 2.3 was only distributed to a very few people.  I received a request to add additional days to the Prime Time settings, and had a problem with the Monthly Reset calculations, so it was not widely distributed.

Version 2.4	07/09/95	Fixed a problem in the Monthly automatic reset.  The date for the next reset was not calculated properly.

Changed the Prime Time Days from two radio buttons to seven checkboxes so that any days could be selected.

Version 2.5	07/15/95	Added switching icons.  There are 4 icons in the program that will indicate Normal operation, Prime Time, Non-Prime Time, and Warning.  (this feature does not work under Windows 95 at this time).

Fixed a problem that caused the main dialog to be displayed off of the screen if the screen resolution was set high, and then reduced, and the position was saved near the high edges.

Revised the logic on the Prime Time Hours section to allow them to cross Midnight.  Some Internet Providers, I have been informed, have Prime Time hours that cross midnight, and users were unable to specify a starting hour later than the beginning hour.

Revised the dialogs to reduce the size slightly for those running 640x480 monitor resolution.

Added the ability to switch the Icon display between Session time and Total time by left-clicking in the main dialog section for the desired mode.

Added indicators (brackets around the section title text) to denote which mode the icon will be displayed in.

Added an LED Indicator for the carrier detect.  It is green when a carrier is present, and red when one is not.


General Program Operation
PROGRAM OPERATION

This program has grown from something real simple into something a little bit complicated.  It isnt hard to understand how it works AFTER you understand how it works!  There are quite a few options that make it very customizable to the way you want to use it.  This section will describe how to set up the program, and how to configure it so that you can get the most out of it.

This is the main programs display.  You can "Click" on any of the controls to get help on that particular control.  There are basically two areas of configuration and operation.  There are some Program configuration variables and controls that define how the overall program behaves, and there are a set of Connection variables that define how each Connection behaves.  Before you proceed with this section, read the section on Connection Configuration to be sure that you understand how the Connections work in this program.  They are the heart of this program, and are very important in providing the flexibility to set up the software the way you want it.

This program can actually be run in two different ways.  How it behaves when it runs depends on how you have it set up.  The Program Configuration defines how the overall program acts.  Read through this section now to get an understanding of the options.

You will normally start this program by clicking on a Program Manager icon (as in any normal Windows program), or start it from another program.  Many communications programs provide a Scripting facility to execute commands.  Trumpet Winsock is probably the most common since it is used for the majority of the Internet connections.  If you run Trumpet, you would normally want to start this program from within the script you use to dial your Internet provider.  Alternatively, you can use THIS program to start another one.  If you have a communications program that doesnt have scripting capabilities, or some other means to start another program, you can set up this program to Launch your communications software.  If you have a program assigned to a connect, the LAUNCH button will be enabled.  Just click this button to start the program.  If a program is not assigned to this Connect, the button will be disabled.

The easiest way to use the program is to configure it for Automatic CD Detection.  This mode watches the Modem Status register, and when it sees the CD, or Carrier Detect, go high it knows that you are connected to another modem, and it begins counting.  When the CD line drops as your modem hangs up, it stops counting.

When Auto Detect is enabled, the Start button on the main dialog will read Auto.  When you click the [Auto] button, the program will begin to monitor your modem registers, and the button will change to read [Stop].  You MUST click the [Auto] button before the program will monitor the registers.  If it reads [Auto], it is NOT monitoring the register.  This was done intentionally since there will be times that you want to stop timing during a connection, or just not time a connection period at all.  Having this button there gives you both capabilities.  To monitor the modem, just click it.  To stop monitoring, just click it again.

Now, since you have the capability of having up to 32 connections assigned, what if you want to use a specific one through a Script file?  When you click the down arrow on the drop-down list box that lists the connections, you will see all of those that you have defined.  The first one in the list is number one, the second is number 2, the third is number 3, and so forth.  In your script file, you can add the index number of the list box to the command that starts the program to start the program using a specific connection.

In a Trumpet Winsock script you might have the line EXEC C:\WINAPPS\UTILS\CCM20.EXE to start this program running from the script.  If you want to start the program running with the third entry in your connection list box enabled, all you have to do is add 3 to the end of the script line, as in EXEC C:\WINAPPS\UTILS\CCM20.EXE 3.  This is called passing a Command Line Parameter to the program.  CCM20 watches for command line parameters when it is started.  There are several Program Configuration options that are activated only if a command line parameter is passed.  This one just described is used to identify a Connection to use.  You can also configure the program to start Minimized only when a command line parameter is passed, exit when the CD drops only when a command line parameter is passed, and display a summary dialog when a command line parameter is passed.

The Pushbuttons on the right side of the dialog are: HELP to access this help file, ABOUT to display the About dialog, CONFIGURE to access the Program Configuration Options,  START / AUTO or STOP (depending on the configuration) to start the timer,  and EXIT to end the program.   There are also EDIT and LAUNCH buttons beneath the List Box.

The Start button is used to start the timing function.  When Auto Detect Start is enabled in the configuration options, this button will be labeled Auto instead of start.  Remember that if this button reads [Auto], you still have to click it to begin monitoring the modem register.

Any time the program is in its timing function,  many of the main dialog controls will be disabled.  You cannot change the configuration or edit a Connection while the program is running.  When you click the [Stop] button, all functions will be enabled again.  You do NOT have to hang up your modem and call back if you were running in Auto mode.  Just click [Stop], make whatever changes you want to make, and click [Start] (or [Auto]) again to restart the timing.

The two display sections show the Session time and Prime Time or Total time.  The Session time is the time accumulated during the current or last On-line session.  The Total time can be used to display either the total accumulated Prime Time or total accumulated Overall time.  The two buttons above the display section control what is displayed.  If you do not have Prime Time Monitoring enabled in the Connection Configuration, these buttons will be disabled and the total display will always show the total accumulated time.

The two Reset buttons in each of the display sections can be used to reset the session and accumulated time.  If you click the reset button for the accumulated time, you will be prompted to verify that you really want to do this since it will clear the time in the initialization file also.  You can reset either of the time displays at any time, even when the timer is running.  If you decide in the middle of a connection that you want to reset the time, go right ahead and do it.

If you Minimize the program, it will be displayed as an Icon on your desktop.  The session or Total Time will still be displayed as the title of the icon.  This allows you to get the program out of your way, but still keep an eye on how long you have been connected.

You can control what is displayed on the icon from the main dialog.  If you have Prime Time monitoring enabled, you have three choices of icon information; Session Time, Prime Time, or Total Time.  If you do not have prime time monitoring enabled, you only have two; Session Time or Total Time.  Whatever is displayed in the Total Time / Prime Time section of the main dialog can be displayed on the icon by clicking the left mouse button anywhere inside the border of the section.  If the Prime Time radio button is checked, the icon will display Prime Time.  If the Total Time radio button is checked, the icon will display Total Time.  You can change the icon to display Session Time by left-clicking anywhere inside the Session section of the main dialog.  The Side that is selected to be displayed on the icon is denoted by having its title in brackets (as in [Session] or [Total Time]).  You can also select the icon display mode in the Configuration Dialog.

There are a couple of ways to start and end the program.   It can be configured to start as an icon or a full-size display, or configured to start as an icon only if it is passed a command line parameter.  It can also be configured to exit when the carrier drops, or exit when the carrier drops but only if it was passed a command line parameter.  You can also set the program to display a summary dialog when the program exits.  For more information on these options, see the Configuration section.


Connection Configuration and Editing
CONNECTION CONFIGURATION

A Connection, as used in this program, is defined as a certain BBS, Internet provider, or other connection that you routinely make with your computer.  This program allows you to define up to 32 Connections, and there are quite a few ways to define each one.

The Edit Dialog box is as shown here.  There are a number of controls on the dialog that customize each connection.  You can "Click" on any of the controls shown here to get a description of what that control does.  The top row is the CONNECTION TITLE.  This is simply the name that is displayed in the list box for the connection. Beneath the title is a block entitled LAUNCH PROGRAM.  This section controls what, if any, program will be started or Launched when you press the Launch button on the main dialog.

There are basically two ways to run this program.  You can have this program started by another program, such as through a Script file.  Or you can use this program to start another program.  Since many communications programs dont provide a means to launch a connect monitor, you can configure this program so that you can start it and Launch your communications program from it.  Well get back to this in a minute, but for now just remember that Launching a program means starting it from within this program.

The Launch Program section has two controls; a check box labeled Enable Program Launch and a edit field to enter the name of the program to start.  The check box controls whether a program is enabled or not.  If this box is not checked, you will NOT be able to launch a program even if a program is identified in the edit field.  The Enable box MUST be checked to enable launching a program.

Once the Enable check box is checked, you can enter a program to Launch in the edit field.   If the program file is in a directory pointed to by your Path statement, all you need to do is enter the name of the program, such as NETCRUZ.EXE.  If the directory is NOT in your Path, you will need to enter the full program and directory, such as C:\WINAPPS\NETCOM\NETCRUZ.EXE.  When the Enable Program Launch box is checked, and the program name is entered, you will be able to start it from the main dialog by pressing the Launch button.

If you need to "Launch" more than one program at a time, or have a need to execute several commands at once, I would recommend the program BATSH20 by:

Thomas Nyffenegger, FMI, PBX 2543, 4002 Basel, CH

Email: nyffenegger@fmi.ch

Web:   http://www.fmi.ch/groups/ThomasNyffenegger/Group.html

This is a very nice FreeWare program that allows you to build "Batch" files of Windows commands and execute them.

If Automatic CD Operation is enabled in the Configuration options, and you click the [LAUNCH] button to start a program, the [AUTO] button will also be Clicked.  This keeps you from having to remember to click the [AUTO] button also.

Beneath the Launch Program section is a section entitled WARNING.  This section is mainly for use by people who have a limited amount of connection time.  For example, if you are limited to 2 hours per day, you can set this section up to warn you when you are getting close to your limit.

This section also has two controls.  An Enable Warning check box, and a Warn At edit field.  As in the Launch Program section, the Enable Warning check box MUST be checked for you to receive a warning.  If this box is not checked, you will NOT receive a warning.  The edit field is used to enter the time at which you want to be Warned.  Using the 2-hour example from above, you might want to set this to 1:55:00 for 1 hour, 55 minutes, 0 seconds.  This would give you 5 minutes to finish what you are doing and log off before your time is up.  If you have a Prime Time setup enabled (see below) the warning is based on your Prime Time total.  If you do not have a Prime Time setup enabled, the warning is based on your total connect time.

The third section is entitled PRIME TIME MONITORING.  If you use an Internet provider or other source that has a Prime Time / Non-Prime Time charge or limit, you can use this section to set up the Prime Time part of the day.  The section has three controls.  There is a check box labeled Enable Prime Time Monitoring, and two edit fields.  As with the previous sections, the Enable check box MUST be checked to enable Prime Time monitoring.  If the enable check box is NOT checked, Prime Time will NOT be monitored regardless of the values entered in the time fields.  The two edit fields define the beginning and ending times of Prime Time.  If, for example, your provider defines Prime Time as being from 9:00am to 12:00 midnight, you would enter 9:00:00 for the Begin Time and 24:00:00 for the End Time.  These values are entered in 24-hour format.  1:00pm is 13:00; 4:00pm is 16:00; 7:00am is 07:00; and so forth.

There are also seven Check Boxes labelled S, M, T, W, T, F, S to denote Sunday through Saturday.  These buttons select the days that your provider denotes as Prime Days.  Any combination may be selected.

The main program display has two Radio buttons labeled Prime Time and Total Time that allow you to select whether the Totals half of the display shows your accumulated Prime Time or accumulated Total Time.  In addition, an LED indicates whether it is currently Prime Time or not.  If it is green, it is currently Prime Time.  If it is red, it is not Prime Time.

The next section controls the AUTOMATIC RESET OF THE PRIME TIME AND TOTAL TIME.  There are four "Radio Buttons" labelled "None", "Daily", "Weekly", and "Monthly".  By default, NONE is selected to disable automatic resetting of the times.  If you select DAILY, your timers will be reset on a daily basis.  If you select WEEKLY, the timers will be reset on a weekly basis, and if you select MONTHLY, they will be reset once each month.

IMPORTANT NOTICE: The Automatic Reset function has been tested as thouroughly as I can by changing the date on my system, and watching to make sure it resets at the proper times, and does NOT reset at improper times.  The logic used, even though it sounds simple at first, is somewhat complicated.  Resetting is easy, NOT resetting when it isn't supposed to was the tough part.  For this reason, I STRONGLY recommend that you enable the LOG FILE function in the configuration options.  Any time the program resets its timers, the values of the prime time and total connect time are written to the log file.  If the program resets at the wrong time, you can retrieve the values from the log file and put them back using the EDIT function. If you DO notice the program resetting at the wrong time (or for that matter if you see it resetting at the RIGHT time), please send me E-mail to let me know.   I really need some input from users to make sure this part is working right.

Beneath the radio buttons is an edit field whose label will change depending on which Reset Mode is selected. If DAILY mode is selected, you should enter the time of day at which you want the timers to reset.  The value is specified in minutes in the format HH:MM in 24-hour format.  For midnight, enter 00:00.  For 3:00am enter 03:00.  For 6:00pn enter 18:00, and so forth.  If you select WEEKLY mode, enter the day of the week on which you want the timers to reset in the edit field.  The can be abbreviated to three characters such as "Sun", "Mon", "Tue", etc.  If you select MONTHLY reset mode, enter the day of the month on which you want the timers reset.  Enter the value in a numeric format such as 1 or 2 or 28.

The bottom section of the dialog contains the ELAPSED TIME TOTALS.  If you want to manually set the total to some value, you can do so here.  If you do not have Prime Time Monitoring enabled, that block will be disabled so you cannot change it.

Finally, there are three buttons at the bottom of the dialog.  The [OK] and [CANCEL] buttons are self-explanatory.  The [DELETE] button is used to delete the specified entry from the Connect list.  When you click this button, you will be asked to confirm that you want to delete the selected Connection.  If you click Yes, the connection will be removed from the list.

NOTE:  If you Delete a record from the list, keep in mind that any Script files you are using that are indexed into the list will have to be updated.  Deleting a record will cause all entries past it to move up 1 slot in the list box, so you will have to edit your script files and change the indexes.


SETUP EXAMPLES  Config Dialog  Connection Dialog

Since this program has quite a few configuration options that will probably seem confusing at first, this section has been included to illustrate some configuration examples.  Keep in mind that there are two types of configuration:  The GENERAL configuration options that affect overall program operation, and CONNECTION configuration that specifies operating parameters specific one particular connection.

GENERAL CONFIGURATION

As a general rule, the easiest way to use the program sets the CONFIGURATION options as follows:

START MODE - Start Timer When Carrier Is Detected (AutoDetect mode)

SERIAL PORT - Depends on your system.  Select the port your modem is connected to.

AUTO RESET ENABLED - Checked

ENABLE LOG FILE - Checked

START MINIMIZED - Checked

START MINIMIZED ONLY BY COMMAND LINE - Checked

EXIT ON CARRIER DROP - Checked

EXIT ON CARRIER DROP ONLY ON COMMAND LINE - Checked

DISPLAY SUMMARY - Checked

SAVE POSITION - Checked

STAY ON TOP - Checked

DISPLAY UPDATE INTERVAL - 980

ICON DISPLAYS - Total / Prime Time checked

SOUND FILE PLAYED WHEN WARNING TIME IS EXCEEDED - Personal preference.  Choose a sound file you like, or enter a blank line for none.

SOUND FILE PLAYED WHEN THE TIMER IS STARTED - Personal preference.  Choose a sound file you like, or enter a blank line for none.  For best results, choose something short such as a Ding.

SOUND FILE PLAYED WHEN THE TIMER IS STOPPED - Personal preference.  Choose a sound file you like, or enter a blank line for none.  For best results, choose something short such as a Ding, but different from the Start sound.

Many of these are personal preferences, so adjust them as you wish.

CONNECTION CONFIGURATION

There is no way to give a single example that will satisy all possible Internet providers and BBS connections since they frequently vary in the amount of time you can use, etc.  For that reason, I'll profile two different Connections.  For these examples, we will assume that your copy of CCM20.EXE resides in C:\WINAPPS\UTILS.  It doesn't matter what directory it is actually in on your system.  Where the examples read C:\WINAPPS\UTILS, simply replace this with the actual directory on your system.

Example 1 - This is an Internet provider named "NETRIDER".  The service uses Trumpet Winsock for its TCP/IP stack, so scripting is available.  Your usage account allows for 40 hours of  Prime Time usage and 100 hours of total usage per month.  Prime Time is from 8:00am to 6:00pm local time Monday through Friday.

Click the list box title on the main dialog, and move down to [New Entry] and click this.  Then click the [EDIT] button beneath the list box to edit the connection.  In the first edit field labeled Connection Title enter NETSTAR SLIP Connection.  Since this is actually only the title that will be displayed in the list box, it can be anything you want it to be.

Since we are going to start THIS program from a script file, there is no need to have a "Launch" program set up.  The Enable Program Launch box should be unchecked.  If there is anything in the program name, it doesn't matter.

Since this particular Internet provider has limits set on how much time you can use, we do want to enable a warning for this Connection.  The Enable Warning box should be checked.  Likewise, since this Internet provider has Prime Time defined, the Enable Prime Time Monitoring checkbox should be checked.  Checking these two boxes will enable the Total Time and Prime Time fields in the Warning section of the dialog.  This particular Internet provider sets limits of 40 hours of Prime Time and 100 hours of Total Time, so set the Total Time field in the Warning section to 99:55:00.  This will cause a warning to be displayed 5 minutes before your time runs out.  Also set the Prime Time field in the Warning section to 39:55:00 to give yourself a five-minute warning before your Prime Time limit is reached.

Next we need to set the Prime Time parameters.  We stated above that our fictitional Internet provider defined Prime Time as being from 8:00am to 6:00pm Monday through Friday.  In the Prime Time Monitoring section, set the Begin Time to 8:00:00 for 8:00am.  Set the End Time to 18:00:00 for 6:00pm (remember that these are expresses in 24-hour time).  Finally, make sure the checkboxes labelled M through F  are checked.

Since this provider limits time on a monthly basis, we can configure the program to reset its timers at the beginning of each month.  In the Timer Reset section, click the Monthly radio button to enable Monthly resets, and in the edit field beneath enter 1 to reset the timer on the first day of each month.

Since this is a new Connection, both the Total Connect Time and Total Prime Time fields should be set to 00:00:00.  No time has been logged for this Connection yet.

Click the [OK] button to save the edits and return to the main dialog.  The Listbox should now read "NETRIDER SLIP Connection".  Click the down arrow beside the list box to display all the Connections in it.  The first connection listed is "Index" number 1.  The second connection listed is "Index" number 2, and so forth.  We need to find the "Index" for the Connection that we just added so that we can set up a Script file to launch the program properly.  Starting at the top of the list, count down until you see the "NETRIDER SLIP Connection".  For this example, we'll assume that it is the fifth entry in the listing, so that would make it's "Index" number 5.

Next, we need to modify the script used to start Trumpet Winsock so that it will start the Connect Timer.  Use Notepad or another text editor to open the script file that you use to dial your Internet provider.  Normally this will be LOGIN.CMD in the same directory as TCPMAN.EXE.  If you use a different script, edit the file that you use.  Scroll down to the end of the file, and add a line that reads: EXEC "C:\WINAPPS\UTILS\CCM20.EXE 5".  The "5" at the end of the line is the "Index" number that we found in the paragraph above.  This tells the program to select the fifth "Index" in the list box when it starts.

With the program configured as outlined in these steps, here is what would happen:  Trumpet Winsock is started by clicking the TCPMAN.EXE icon to start TCPMAN.  If it is set up to login automatically, it will start executing the script file LOGIN.CMD.  If not, you may have to select the proper script file to execute.  For here, we'll assume that LOGIN.CMD is executed when TCPMAN is started.  The Script file will log into our Internet Provider, and once everything is connected, the EXEC command at the end of the script will start CCM20.EXE.

CCM20 will start with Index 5 selected since that it what we told it in the Script command.  Index 5, of course, points to the Connection we just set up.  Since we have the program set up for Start Minimized On Command Line Pass and we DID pass it a command line parameter (the "5" for index 5), it will start as an icon at the bottom of the screen.  It will stay on top of all other windows on the screen since we have Stay On Top turned on.  It will sense that the carrier to the modem is present, and start timing automatically.  The display on the icon will display the Total Connect time since we configured the Icon Display for Total.  When you hang up your modem (normally done through Trumpet's BYE script file), CCM20 will sense the loss of carrier and stop timing.  Since it was set up for Exit On Carrier Drop, it will exit at this point.  First though, it will display a dialog showing the session time and total accumulated time since Display Summary Dialog was enabled.

EXAMPLE 2 - For this example, let's assume that you use your normal communications software to connect to a BBS system.  The BBS has no Prime Time hours defined, but you are limited to 2 hours of connect time per day.  Further, your communications software has no means of starting a timer through a script file, so we will use CCM20 to start the communications software instead.

The GENERAL CONFIGURATION options established above will work fine for this setup also.  They are somewhat "Generic" values, and will allow you to do a lot with CCM20 with the least amount of effort on your point.

Click the list box title on the main dialog, and move down to [New Entry] and click this.  Then click the [EDIT] button beneath the list box to edit the connection.  In the first edit field labeled Connection Title enter Local BBS Connection.  Since this is actually only the title that will be displayed in the list box, it can be anything you want it to be.

Since we are going to start another program FROM this program, this time we DO need to have a "Launch" program set up.  The Enable Program Launch box should be checked.  In the edit field beneath, enter the name of the communications program.  If it resides in a directory that your path points to, you only need to enter the name of the program (i.e. QMODEM.EXE).  If the directory is NOT in your path, you will need to enter the complete path to the file (i.e. C:\COMM\QM\QMODEM.EXE).  This will set up a launch program, and enable the [LAUNCH] button on the main dialog.

Since this particular BBS provider has limits set on how much time you can use, we do want to enable a warning for this Connection.  The Enable Warning box should be checked.  However, since there is no Prime Time defined, we don't need that, so the Enable Prime Time Monitoring checkbox should be unchecked.  This will enable the Total Time but NOT the Prime Time fields in the Warning section of the dialog.  We are limited to 2 hours per day, so set the Total Time field in the Warning section to 01:55:00.  This will cause a warning to be displayed 5 minutes before your time runs out.

Since Prime Time Monitoring is not enabled, there is nothing to do in the Prime Time section.  In fact, everything is disabled so you can't do anything to it.

Since this provider limits time on a daily basis, we can configure the program to reset its timers at the beginning of each day.  In the Timer Reset section, click the Daily radio button to enable Daily resets, and in the edit field beneath enter 00:00 to reset the timer at the beginning of each day.

Since this is a new Connection, both the Total Connect Time and Total Prime Time fields should be set to 00:00:00.  No time has been logged for this Connection yet.

Click the [OK] button to save the edits and return to the main dialog.  The Listbox should now read Local BBS Connection and the [LAUNCH] button will be enabled.  Click the [LAUNCH] button and your communications program will start.  The [AUTO] button on CCM20 will also change to [STOP] to indicate that it is monitoring the modem's CD line.  Use your communications software to dial your BBS normally, and as soon as you are connected to the other modem, the timer will begin to count.

When you log out, the timer will stop counting, but the program will NOT exit.  It doesn't exit automatically even though you have Exit On CD Drop enabled in the GENERAL CONFIGURATION because the Exit On CD Drop On Command Line Pass is enabled also.  This means that if, when the program was started, no parameters are passed on the command line, the Exit On CD Drop is ignored.  Since we didn't start the program from a Script file this time, we started it from a Program Manager Group, it stays up even when the carrier drops.

SUMMARY - You should be able to see from these two examples that there are numerous ways to configure the program so that it is most convenient for you to use.  You may still have to play with the options some to get them the way you want, but these two examples should point you in the right direction.


WHATS NEW FOR VERSION 2?

Version 2.1 adds several new features that really enhance the effectiveness of the program.

START MINIMIZED - This is a new configuration option that allows the program to start in a Minimized format as an Icon instead of the full-sized dialog.

START MINIMIZED ONLY IF A COMMAND LINE PARAMETER WAS PASSED - This option, used in conjunction with a script file, allows you to start the program in its full-sized mode of operation when it is started from a program group, and also start it as an Icon if it is started from a script file.

END PROGRAM WHEN CARRIER DROPS - This new option allows you to configure the program so that when the carrier to your modem drops, the program will automatically exit.

END PROGRAM WHEN CARRIER DROPS BUT ONLY IF PROGRAM WAS STARTED WITH A COMMAND LINE PARAMETER - This option is similar to the one above, but it allows you to configure the program so that it will exit when the carrier drops, but ONLY if the program was started with some command line parameter (it doesnt matter what parameter as long as something is passed!).  It also is very handy when used in a script file because it allows you to use a script to start the program (like you would with Trumpet Winsock), and when you end the communication, the program will automatically exit to.

DISPLAY SUMMARY - This option is enabled only if END PROGRAM WHEN CARRIER DROPS is enabled.  Since when the END PROGRAM WHEN CARRIER DROPS feature is enabled, when the carrier drops and the program ends, the display showing the session and total time will disappear.  If you enable this feature, a message box will be displayed showing the session and total time.

LAUNCH PROGRAM - This is similar to a Reverse Script.  Since so many programs don't allow you to launch another program, you can use this one to launch the other program.  For example, if you use a communications program such as Procomm or Qmodem.  You can configure THIS program so that when you select a Connection, you can click the Launch button to start your communications program.

PRIME-TIME MONITORING - This option allows you to configure the program to monitor Prime Time and Non-Prime Time operation.  An LED on the main dialog will be displayed to denote the Prime Time status (Green = Prime Time, Red = Non-Prime Time), and the Totals section of the display can be switched between Prime Time and Total time.

WARNING FEATURE - This function is very handy if you have a pre-set amount of time you can use.  As you near the end of your time period, the program will change the display characters to red, and optionally play a sound file to let you know that you are getting close to your limit.

SAVE WINDOW POSITION - Added for Version 2.2, and allows the position of the window to be retained between sessions.

STAY ON TOP - Also added for Version 2.2, this option causes the programs display to remain on top of all other windows on your desktop.

ICON DISPLAY IS SESSION OR TOTAL TIME - This option defines whether the program displays the Session time or the Total connected Time on the iconic display.

AUTOMATIC RESET OF TOTAL AND PRIME TIMES - The total accumulated time and Prime time can be configured to automatically reset on a daily, weekly or monthly basis.

CREATE LOG FILE - this option was added for version 2.3, and causes a log file of all connect sessions to be maintained.  The file is an ASCII file in the same directory as the program file, and is named CCM20.LOG.  It will contain a listing of each session, as well as the total accumulated connection time, and the total accumulated prime time.

Version 2.3  also contains some Bug fixes and function enhancements that make it a bit quicker and smoother.

NOTE:  The initialization file used in previous versions has been changed, however you can still use the earlier file.  Earlier versions had a problem that caused the creation of multiple INI files.  This has been fixed in later versions.  You can delete any INI files on your disk EXCEPT the one that is in the directory with the CCM20.EXE file.  See the INI File Structure section for further information.


INI FILE STRUCTURE

The initialization file CCM20.INI is retained in the same directory as the program (as opposed to many Windows applications that put it in the Windows directory).  The structure of the file is very simple, and may be edited with any text editor, such as Notepad, if required.  The format is as shown below in an example:

[GENERAL]

NumEntries=4

Last=2

Port=3

Mode=1

Reset=1

Minimized=1

CDExit=1

CmdLineMin=1

CmdLineExit=1

Version=2.3

ShowSummary=1

TimerInt=980

IconMode=0

DisplayMode=1

SaveWinPos=1

StayOnTop=1

LogFile=1

WavFile=

StartSound=

EndSound=

[CONNECT]

Ent0=Nashville Exchange (Login),6922,1,c:\sys\mswin3\pcw\pc.exe

Ent1=Nashville Exchange (SLIP),0,0

Ent2=Netcom SLIP,268,0

Ent3=Edge,0,0

[WARNINGS]

Ent0=1,6900,6900

Ent1=1,6900,0

Ent2=1,1511700,143700

Ent3=0,0,0

[PRIMETIME]

Ent0=0,1,62,86400,0

Ent1=0,0,62,86400,0

Ent2=1,1,62,35640,36055

Ent3=0,0,62,0,0

[RESETS]

Ent0=0,0,0

Ent1=0,0,0

Ent2=0,0,0

Ent3=0,0,0

GENERAL SECTION

PORT is the communications serial port from the configuration dialog.  It will be number from 1 to 4, corresponding to COM1 through COM4.

RESET is the Auto Reset setting from the configuration dialog. 1 is enabled, 0 is disabled. Default=Enabled.

MODE denotes the Manual or AutoStart mode.  0 is AutoStart, 1 is Manual. Default=Manual.

NUMENTRIES denotes the number of Connections displayed in the list box.

LAST denotes the last connection number used.  This value is relative to zero, or in other words, the first entry in the list box is 0, the second is 1, etc.  In the example above, LAST=3, so this would indicate the fourth entry in the list box.

VERSION denotes this file as a Version 2.3 file

MINIMIZED is the state of the Start Minimized button.  0 is Disabled, 1 is Enabled. Default=Enabled.

CMDLINEMIN is the state of the Start Minimized When Command Line Parameter Is Passed button.  0 is Disabled, 1 is Enabled.  Default=Enabled.

CDEXIT is the state of the Exit Program When Carrier Drops button.  0 is Disabled, 1 is Enabled.  Default=Enabled

CMDLINEEXIT is the state of the Exit Program When Carrier Drops But Only If A Command Line Parameter Was Passed button.  0 is Disabled, 1 is Enabled. Default=Enabled

TIMERINT is the number of milliseconds between display updates.  It corresponds to the configuration dialogs Display Update Interval.  The default is 980 milliseconds.  This is a change from Version 2.1 which had a default of 100 milliseconds.  The timing functions have been revised significantly, and 1/10th second checks are no longer required.  If your Version 2.1 file has this value set to 100, it will automatically be revised to 980 when you run the Version 2.2 program for the first time.

ShowSummary defines whether the summary dialog is shown when the program exits from a Minimized state.  If this is set to 1, the dialog will be shown.  If it is set to 0, the dialog will not be shown.

IconMode defines whether the program displays the Session or Total / Prime Time on the icon.  If this value is set to 0, the session time will be displayed.  If it is set to 1, the Total or Prime Time value will be shown.

DisplayMode defines whether the totals side of the display shows Total accumulated time or accumulated Prime Time.  If it is set to 1, the total accumulated time will be displayed.  If it is set to 0, the total prime time will be displayed.

SaveWinPos defines whether the window position is saved between sessions.  If it is 1 the window position is saved.  If it is 0 the position is not saved.

StayOnTop defines whether the window is always on top of other windows.  If it is set to 1 this feature is enabled.  If it is set to 0 the function is not enabled.

WAVEFILE is the file name of the sound file played when the Warning time is exceeded.

STARTSOUND is the file name of the sound file played when the [START] button is pressed or the program senses a carrier to the modem.

ENDSOUND is the file name of the sound file played when the [STOP] button is pressed or the program loses the carrier to the modem.

LogFile is either a 0 or a 1 to denote whether a log file is enabled.  0=Disabled, 1=Enabled.

CONNECT SECTION

ENT0 through ENT31.  These values are the actual Connection strings.  There must be a number of these equal to the value specified in NUMENTRIES.  They begin with number zero, for the first entry in the list box, and can go through 31 for a total of 32 entries.  The string is stored in as many as four parts with a comma dividing the parts.  Anything to the left of the first comma is taken as being the name of the connection (and you cannot have a comma in the name!).  The numeric value to the right of the first comma is the total number of connect seconds.  If it shows 60, you were connected to that person for 60 seconds (this will be shown on the display in minutes as 00:01:00.

Following the connect time is either a 0 or a 1.  If a 0 is present, there is no Launch Program associated with this connect.  If a 1 is present, there is a launch program, and the command to start it will follow (with another comma between the 1 and the program command).

WARNINGS SECTION

ENT0 through ENT31.  These values contain the Warnings settings.  There are three values separated by commas.  The first will be either a 0 or a 1 to denote whether a warning is enabled for that particular connection.  0 denotes no warning, 1 denotes a warning enabled.  The second variable is the TOTAL warning time in seconds, and the third is the PRIME TIME warning in seconds.

PRIME TIME SECTION

ENT0 through ENT31.  These values contain the Prime Time settings.  There are 5 values separated by commas.  The first will be either a 0 or a 1 to denote whether Prime Time Monitoring is enabled for that particular connection.  0 denotes disabled, and 1 denotes enabled.  The second value is a Bit Mapped value denoting the days of the week that are defined as Prime Time.  Sunday is bit 0, and Saturday is bit 6.  The value denotes the binary sum of all the bits.  Next is the beginning time in seconds, then the end time in seconds, and finally the total accumulated Prime Time in seconds.

RESETS SECTION

ENT0 through ENT31.  These values retain the settings used for automatically resetting the total and prime accumulated times.  There are three values separated by commas.  The first is the reset mode.  0=None, 1=Daily, 2=Weekly, 3=Monthly.  The second value denotes whether the value has been reset.  This value should not be changed manually.  The last value is associated with the mode in use, and denotes the next day that a reset should take place.

NOTES:	The format of the RESETS section has been changed slightly between Versions 2.3 and 2.4 to accomodate the ability to select the individual days of the week defined as Prime Time.  When you first start Version 2.4, it will note the version change and automatically update the values to the new format.  You do not have to change anything manually.

There was a problem in earlier versions of this program that caused multiple INI files to be created.  This has been fixed in later versions.  You can delete any CCM20.INI files on your system EXCEPT the one in the directory with the CCM20.EXE file.

The initialization file for Version 2.2 is different from that used by 2.0 and 2.1, but all changes have been made in separate sections (specifically the PRIME TIME and WARNING sections) so that it would still be compatible with older versions.

The initialization file is different from the Version 1.0 INI file.  If you have Version 1.0 of this program, you can rename your CCM1.INI file to CCM20.INI and make one change for it to work properly. After you rename the file, open it with NOTEPAD or a similar text editor.  At the bottom of the file, add a line that reads [CONNECT].  Then, move up in the file and find all of the Connect lines (they will start with Ent0, Ent1,Ent2, etc.) and MOVE them down below the [CONNECT] line that you just added.


Passing Command Line Parameters
COMMAND LINE PARAMETERS

You can pass the number of the connection to be used on the command line to automatically start the program with a particular connection selected in the list box.  This is particularly handy for use in Script files, as used with Trumpet Winsock or other communications software.  Simply follow the command to start the program with the list box index of the connection you want to use.  For example, it I wanted to start the program with Netcom selected, and Netcom was the third item in the list box, the command would be CCM20 3.

If anything is passed as a parameter to the program (even if it is an invalid value), AND if the program is configured for AutoStart mode, the program will automatically be started with the timer running.  This was done intentionally so that you could launch the program from within a script file (which will normally do all the dialing for you) without having to start the timer running yourself.  Remember that in AutoStart mode, the timers dont actually start changing value until a carrier to your modem is detected, so the time wont change until you are actually connected to the other modem.

If you use Script files to dial under Trumpet Winsock, you can edit the script command file to automatically start the program, and optionally select a particular connection.  Trumpet Winsocks Dialler menu (yes, it is misspelled) lists the script files in the same directory as TCPMAN.EXE.  Login is used as the default most of the time, but you may have others.  The Login script will be named LOGIN.CMD in the same directory as TCPMAN.EXE, and you can edit it with Notepad or a similar editor.

Lets say you have three accounts you use frequently, and have a Trumpet script set up for each of them.  Well call them Netcom, TNE, and Netstar.  You have this program set up so that Netcom is the second item in the list box, TNE SLIP is the first item in the list box, and NETSTAR is the third item in the list box.  Edit NETCOM.CMD, and at the end of the script file put the line EXEC CCM20.EXE 2 to start CCM20 running, and select the second list box item as the connection to be used.  Edit TNE.CMD, and at the end of the script add the line EXEC CCM20.EXE 1 to start the program with the first list box item selected.  Edit NETSTAR.CMD, and at the end of the script add the line EXEC CCM20.EXE 3 to start CCM20 with the third list box item selected.  This assumes that CCM20.EXE is in the same directory as TCPMAN.EXE.  If it isnt, include the complete path to the program as in EXEC C:\INTERNET\UTILS\CCM20.EXE 1.  Note in all cases the command line is enclosed in double-quotes.


Introduction To CCM20
INTRODUCTION

This program is a compact time monitor for use during communications sessions.  There are many very good examples of this type of program available as ShareWare or FreeWare, but all of them that I tried left something to be desired as far as my use goes.  This is not to say that they arent good, rather for what I do, I couldnt get them to do what I wanted.

My main gripes with most of the others I used were:

No multiple connections.  There was usually only one Connection allowed.  All time accumulated was posted to this account without being able to say I want this session posted to one account, and then change to another account for another session.  There are some programs available that allow multiple Connections, but most of them track cost whereas I was only interested in time.

Everybody is concerned with the cost of a session, and not the connect time of a session.  My Internet accounts are not Cost Based, they are Time Limited.  I have a certain amount of time each month (or day) that I can use, and all I want to know was how much TIME has been used during each session since it doesnt cost anything.

Many of the timer programs dont accumulate statistics.  In addition to the amount of time I spend connected, I wanted the total time accumulated for a certain period.  One of my accounts has a 2-hour per day limit, and another account has a 40-hour per month limit.  I wanted to be able to see the total accumulated time, and be able to quickly reset it.

No Automatic Start.  I wanted to be able to start the program, and let it decide when to start running based on my modem connection.

No Automatic Stop.  I wanted a way to automatically end the program automatically.  This one has that capability.  It can exit automatically in two different ways.  See  the Configuration and Whats New For Version 2 sections for further information.

No Control Over Minimized or Maximized Display.  Sometimes I want the full-size display, and sometimes I want a minimized display. This program offers you a choice in that it can be configured to start as an icon when launched from a script, and start full-sized when launched from a Program Group.

I could find lots of software that would do some of these things, but none that would do all, so I decided to write my own.  CCM20 is the result (CCM20 stands for Craig Communications Monitor Version 2.x by the way).  Its main features are:

Multiple setups stored in one INI file.  You can have up to 32 connections stored.  Each is written into a single INI file that holds the name of the connection, and the total connect time.

The session ID can be passed on the command line.  This allows you to execute the program from within a Script file, and select the proper connection automatically.

Connect time is continually displayed and updated showing the current session time and the total accumulated time.

The session time and accumulated time can be reset by clicking one button.

Optional Automatic Start.  When enabled, the Automatic mode will watch the carrier detect line from your modem.  When the CD line goes high, at the beginning of a session, the timer starts.  When CD drops, the timer stops.

Optional Automatic Reset.  When enabled, the session time is automatically reset to zero each time a session is begun.  When disabled, the session time continues to accumulate, and is not reset to zero each time a session is begun.

Configurable for COM1 through COM4 (this is only pertinent in AutoStart mode.  In manual mode,  the serial port is unneeded).

Session time is displayed on the icon when the program is minimized.  If you have the program Minimized on your desktop, the time for the current session will still be displayed as the icon title.

Program Launch.  If you want to set up a program to be launched from this program (kind of like a Reverse script) you can do so.

CCM20 is FreeWare.  You may freely distribute the software pursuant to the restrictions set forth in the Copyright and Disclaimer section.  I hope you enjoy the software, and if you have any problems (or even if you dont!) please let me know.  My address is in the Problem Reports section.

I can't take credit for all of the features that have been added over the past few releases.  I have received a lot of E-mail from people using the program, and many of them had requests for many of the features that have been added.

If you like it (or even if you dont), drop me an E-mail message and let me know.

Scott Craig	SCraig@IX.Netcom.Com

June, 1995	Scott.Craig@Nashville.Com


Problem Reports
PROBLEM REPORTS AND/OR REACHING THE AUTHOR

If you have a problem with this software and want to file a trouble report, or if you simply want to send me a note, I can be reached at the following addresses:

SCOTT CRAIG            	EMail to SCraig@IX.Netcom.Com

409 Jessie Drive	or Scott.Craig@Nashville.Com

Nashville, TN  37211-3534

Please include the version of the software that you are running (it is displayed at the top of the screen, and as much information as you can about the problem you are having (the steps required to cause the problem, what happens, etc.)

Be sure to include your return address.  This is a 1-man operation not a business, so time is limited, but I WILL answer all letters or EMail received.  I am very interested in my software, and try very hard to write the best software that I can.  If you have problems, I want to know about it.  If you DON'T have problems, or have ideas as to how the program could be made better, I want to know about that too.  I very much appreciate your thoughts and input, and would like to hear from you.

Thanks Very Much .... Scott


Copyright And Disclaimer
COPYRIGHT INFORMATION and DISCLAIMER

This software is owned and copyrighted by the author, and is released as FreeWare, and may be freely copied and distributed by any means pursuant to the following restrictions:

All programs, files, and sections remain intact and unmodified.

This software may NOT be distributed as part of Bundled software (including CD-ROM or diskette distribution of Shareware and/or Freeware software) for sale without the express written permission of the author.

No monetary reimbursement of any kind is received for the copying or distribution of the software.

In plain English, you can GIVE a copy to anybody you want to, but you cannot SELL a copy to anybody without my permission.

DISCLAIMER

This software is provided on an as-is basis.  Neither the author nor any distributor of this software offer any  warranty of any kind, nor accept responsibility for any  damages of any type incurred through or by the use of this software.  Through and by the use of this software, you accept all responsibility for any damages incurred or thought to be incurred by using this software.

This software and all associated files are:

COPYRIGHT, 1995, SCOTT CRAIG

ALL RIGHTS RESERVED


DOUBLE CLICK

To Double Click an item, position the mouse cursor on the desired item, and click the left mouse button TWICE in quick succession.


No Help Available

No help is available for this area of the window.


No Help Available

No help is available for this message box.


Connections List Box

This is the section that allows you to select which "Connection" you want to use for the current session.  Click on the down arrow and the available Connections will be displayed.  If you have not defined any Connections, the only one will be [New Entry].  Click the [EDIT] button beneath the list box and you can define the connection.  If more than one Connection is displayed, "Click" the desired Connection to make it active.  It will then be displayed in the list box, and the values associated with it will be loaded.


Edit Button

This button causes the Connection Configuration dialog to be displayed.  This dialog allows editing of all the values associated with a particular Connection.


Launch Button

This button causes the program associated with a particular Connection to be started when it is clicked.  If no program is associated with the Connection in the Connections dialog, this button will not be enabled.


Total Time / Prime Time Buttons

These buttons control whether the Total section of the display shows Prime Time or Total Time.  If Prime Time is not enabled in the Connections dialog, these buttons will be disabled and the Total section will always display the total accumulated time for the connection.


Carrier Detect LED

This LED will be displayed when AutoDetect is enabled.  When it is green, a carrier has been detected.  When it is red, no carrier is present.


Session Display Section

This section of the display displays the Session time, or the time that has elapsed since the timer began running.  It can be reset to zero by clicking the [RESET] button.  Clicking the left mouse button anywhere in this section will also cause the Session Time to be displayed on the icon when the program is minimized (be careful not to hit the [RESET] button though!)  When the session time is to be displayed on the icon, the title of this section will be displayed in brackets (as in [Session]).


Total Time / Prime Time Display Section

This section of the display displays either the TOTAL ACCUMULATED time or the TOTAL ACCUMULATED PRIME time depending on the setting of the radio buttons above. It can be reset to zero by clicking the [RESET] button.  Clicking the left mouse button anywhere in this section will also cause the Total Time / Prime Time to be displayed on the icon when the program is minimized (be careful not to hit the [RESET] button though!)  When the Prime Time / Total Time is to be displayed on the icon, the title of this section will be displayed in brackets (as in [Prime Time]).


HELP Button

This button displays this help file.


ABOUT Button

This Button causes the program's "About" dialog to be displayed.  The About dialog provides information about the program version and copyright.


CONFIGURE Button

This Button displays the Configuration Dialog that allows setting the overall program options.  Options set on this dialog are applied to all "Connections".


START Button

This Button starts the timer running.  It may read AUTO depending on the settings of the AutoDetect mode in the Configuration Options.


EXIT Button

This Button ends the program.  The INI file will be updated with your current settings and connect times, and if the timer is still counting, it will be stopped.


Title String

This edit field allows you to enter the title to be associated with a particular Connection.  The value in this field is the title that will be shown in  the list box on the main dialog.


Entry Number

The entry number shown here is not an editable value, however it is the index number that you would use when launching this program from a Script file.


Enable Launch Checkbox

When this checkbox is checked, the program shown in the edit field below will be started when the [LAUNCH] button on the main dialog is clicked.  If this button is NOT checked, the [LAUNCH] button on the main dialog will NOT be enabled regardless of whether a program name is entered below or not.


Launch  Program Name

This field is the name of the program that you want to start executing when the [LAUNCH] button on the main dialog is clicked.  If the program is in a directory that lies in your "Path", you only need to enter the name of the program (i.e. CCM20.EXE).  If the program does not lie within your path statement, you will need to enter the full path to it (i.e. C:\WINAPPS\UTILS\CCM20.EXE).  If the Enable Launch Check box above is NOT checked, this function will NOT be enabled.


Enable Warnings

This checkbox enables the Warning function.  The Warning function changes the color of the display and optionally plays a Sound file when your connect time gets to the limits set in the two fields below.  If this check ox is NOT checked, the Warning function will be disabled regardless of the values set below.


Total Warning Time

This field determines the total amount of elapsed connect time that will cause a Warning to be displayed.  When the total connect time reaches the value set here, the Warning will be given IF the Enable Warnings checkbox above is set.  You would normally want this value set slightly below the limits your connection has to allow time for you to finish what you are doing and log out.  If you are limited to 2 hours per day, you might want to set this value to 01:55:00 to give you a five minute "Grace Period".


Prime Warning Time

This field determines the total amount of elapsed Prime connect time that will cause a Warning to be displayed.  When the total Prime connect time reaches the value set here, the Warning will be given IF the Enable Warnings AND the Prime Time Monitoring checkboxes are set.  You would normally want this value set slightly below the limits your connection has to allow time for you to finish what you are doing and log out.  If you are limited to 2 hours per day, you might want to set this value to 01:55:00 to give you a five minute "Grace Period".


Enable Prime Time Monitoring

This check box determines whether Prime Time monitoring is enabled or not.  If Prime Time Monitoring is enabled, you will be able to switch between Prime and Total time using the radio buttons on the main dialog.  Additionally, an "LED" will be displayed on the main dialog denoting whether it is Prime Time or not.  If it is currently Prime Time, the LED will be green; if it is not Prime Time, the LED will be red.  The limits of Prime Time are set in the controls below.


Prime Time Beginning

This field sets the time of day at which your Prime Time period begins.  If all day is prime time, set this field to 00:00:00 and the ending time to 24:00:00.  The field is filled in in 24-hour time.  13:00:00 is 1:00:00 in the afternoon; 21:00:00 is 9:00pm; etc.  This field cannot be changed if the Enable Prime Time Monitoring check box above is not enabled.


Prime Time Ending

This field sets the time of day at which your Prime Time period ends.  If all day is prime time, set this field to 24:00:00 and the beginning time to 00:00:00.  The field is filled in in 24-hour time.  13:00:00 is 1:00:00 in the afternoon; 21:00:00 is 9:00pm; etc.  This field cannot be changed if the Enable Prime Time Monitoring check box above is not enabled.


Prime Days

These seven check boxes denote the days of the week that your provider defines as Prime Time.  Any combination may be selected.  This has been changed from previous versions, but the INI file will automatically be updated when your first run Version 2.4  If the Prime Time Monitoring check box above is not checked, you will not be able to change these buttons.


RESET MODE

This set of buttons controls the Automatic Reset of the Total and Prime time.  The mode can be set to Not reset (None), to reset on a Daily basis, a Weekly basis, or a Monthly basis.  The value of the reset (time of day, day of week, or week of month) can be set in the edit field below AFTER a mode is selected.


RESET VALUE

The value of this field depends on the RESET MODE selected.  If RESET MODE is set to NONE, this field will be disabled.  If RESET MODE is set to DAILY enter the time of day in hours and minutes at which you want the timer to be reset (i.e. 00:00 for midnight or 18:30 for 6:30pm).  If RESET MODE ise set to WEEKLY, enter the day of the week at which you want the timer to reset (it will reset at 00:00 on the selected day).  Values should be "Sunday", "Monday", "Tuesday", etc. or they can just be shortened to three characters as in "Sun", "Mon", "Tue".  The values are not case-sensitive.  If RESET MODE is set to MONTHLY, enter the dat of the month on which you want the timer to be reset (i.e. 1 or 2 or 25).  The timers will be reset at 00:00 on the selected day.


Total Accumulated Hours

This value is the total accumulated time recorded for the particular connection.  If you want to change it, you can do so here.


Total Accumulated Prime Time

This value is the total accumulated Prime time recorded for the particular connection.  If you want to change it, you can do so here.  If the Prime Time Monitoring check box is not set, you will not be able to change this value.


Delete

This button is used to delete the current Connection from your configuration.  If you click this button, you will be prompted to verify that you actually want to delete the connection.  If you click [YES], the connection will be deleted.  If [New Entry] is the currently selected Connection, this button will be disabled.


OK

Clicking this button will cause any changes you have made to be put into effect, and stored in the configuration file.


Cancel

Clicking this button will cause any changes you have made to be ignored.  The dialog will be closed, and any changes you made to the values will be discarded.


Auto Detect Mode

This check box selects the Auto Detect mode of operation, and enables the Serial Port Selection radio buttons.  For a description of Auto Detect mode versus Manual Mode, see the Configuration section of the help file.


Manual Mode

This check box selects the Manual mode of operation, and disables the Serial Port Selection radio buttons.  For a description of Auto Detect mode versus Manual Mode, see the Configuration section of the help file.


Serial Port Selection

This section is only enabled if Auto Detect mode is enabled.  These four buttons select the serial port to be monitored for a modem carrier.


Auto Reset Enabled

This button selects whether the Session time is reset to zero each time a session is started.  When the timer begins counting for a session, this value will be reset to zero just as if the [RESET] button had been pressed.  If this feature is NOT enabled, the session time will NOT be reset when a session is started.


Enable Log File

This feature, when enabled, causes a Log file to be created in the same directory as the program file, listing each connect session and the session time, total accumulated time, and total prime time.


Start Minimized

When this box is checked (enabled), the program will start as a "Minimized" display, or icon.  If this button is not checked, the program will start as a full-sized dialog box.


Start Minimized On Command Line Pass

This button modified the "Start Minimized" button so that the program is started as a minimized icon ONLY if a parameter is passed on the command line (as would probably be the case when the program is started from a script file).  If no command line parameter is passed, the program will start as a normal dialog box.


Exit On Carrier Drop

This button controls whether the program will exit when the carrier to the modem drops.  If it is checked, the program WILL exit when it looses a carrier detect.


Exit On Carrier Drop On Command Line Pass

This button modifies the function of the Exit On Carrier Drop so that it is only enabled if a parameter is passed on the command line (as would probably be the case when the program is started from a script file).  If no command line parameter is passed, the program will not exit when the carrier drops.


Display Summary Dialog

This button controls whether a summary dialog is displayed when the program exits.  If it is checked, a summary dialog will be displayed when the program exits from a minimized (iconic) state.  The dialog shows the session and total or prime time.


Save Window Position

If this button is checked, the screen position in which the dialog is located when the program exits is saved.  The next time the program is run, the dialog will be position in the same place on the screen.  The window position is ignored if the program is displayed as an icon.


Always On Top

This button controls whether the dialog (or icon) is always displayed on top of other windows.  If this button is checked, the program will always be displayed as the top-most window on your screen.


Display Interval

This value controls the internal timing of how often the time display is updated on your display, and it AutoDetect mode is enabled, how often the CD line is polled.  It has NO EFFECT on the accuracy of the timing other than the displayed value.  The time intervals are stored internally in 1/10ths of a second, and are displayed when this interval has elapsed.  980 denotes 980 milliseconds, or 980/1000 of a second.  Since there is normally a slight delay in the message queue on most systems, this will result in a display refresh of about 1 second, and is normally suitable for most applications.


Icon Display Mode

These two buttons determine whether the icon displays the session time or the total time.  If Session time is selected, the session time will be displayed on the icon when the program is minimized.  If total time is selected, either the total time or prime time (depending on the button selection on the main dialog) will be displayed on the icon.  If Prime Time monitoring is not enabled for the Connection currently in use, the total time will be displayed.


Warning Sound File

This section allows you to select a sound file to be played when the Warning time is exceeded.  You can either enter the name of the file in the edit field, or click the "Search" button to select a file using the normal Windows File Open dialog box.  If Warnings are not enabled, this section will not be enabled.


Start Sound File

This section allows you to select a sound file to be played when the [START] button is clicked, or if the program is set for AutoDetect, a carrier is detected.  You can either enter the name of the file in the edit field, or click the "Search" button to select a file using the normal Windows File Open dialog box.


Stop Sound File

This section allows you to select a sound file to be played when the [STOP] button is clicked, or if the program is set for AutoDetect, the carrier is dropped.  You can either enter the name of the file in the edit field, or click the "Search" button to select a file using the normal Windows File Open dialog box.


OK

Clicking this button will cause any changes you have made to be put into effect, and stored in the configuration file.


Cancel

Clicking this button will cause any changes you have made to be ignored.  The dialog will be closed, and any changes you made to the values will be discarded.


Help

Clicking this button will cause this help file to be displayed with the Configuration section selected.