[Simple Multi-Alarm Utility]
or [SMAU] for short
which should be pronounced like SMALL
only with no L at the end
[SMAU]::Intro
[SMAU] is a handy tool for creating and managing Alarms, which you set to execute an Action at a given Time, where both Action and Time can have a very broad meaning. The main purpose of the program is to increase user's efficiency when working with a computer by reminding him or her of important things that need to be done on time, and could easily get forgotten. The program allows you to create a simple Alarm within seconds, but still not much more is needed to create a more complicated Alarm, which will, for instance, remind you each Monday and Thursday afternoon to e-mail the work report to your project manager, by displaying a reminder and creating an empty message addressed to the person. It can also be set to some important date but not have any Action assigned - it will just remind you about something when you look at the list of Alarms.
The program was written in C++Builder 2006 and might need some dll's and bpl's to run. At the bottom of this document there is a link to a possible source of these files. Put them in the program directory, or in your system directory.
[SMAU]::The Idea
[SMAU] is intended to start with the system, and work in background (in tray). In order to ensure that, you will have to add a shortcut to the program to Start | Programs | Autorun. (If you want the program to start minimized, specify 'tray' as a parameter for the program.) The program holds a list of Alarms that have been entered into it, and wait for their Time to execute their Action.
[SMAU]::The Program
[SMAU] is designed to be intuitive and easy to use. When you run it, you see the fields for Alarm details, and the list of Alarms.
To add a new Alarm, first ensure that none of the existing Alarms is selected (there is no selection on the list). You might need to click the New button to unselect the currently selected Alarm. Then simply specify Name, Time and Action for the new Alarm, and it will be automatically added to the list. Remember to click the button that says Inactive to switch the Alarm to active state, which is signalized by a small bell on the list to the left of the Alarm description.
To view or edit one of the existing Alarms, simply select it on the list. All changes you make to it are automatically saved, there is no need to confirm changes. Note: If you edit Time of an active Alarm, it will (most likely) turn inactive and you will need to activate it again when you finish editing.
To delete an Alarm, select it and click the Delete button, or press Del on the keyboard.
The Duplicate button duplicates the currently selected Alarm. The start time of the new Alarm is set to the moment of duplication.
You can update any Alarm's start time by clicking the Set to Now button. The starting time is important when the Time is specified as this or once (explained later in this document).
[SMAU]::Alarm
Each Alarm consists of Name, Time and Action, and also start time (which is usually the time when it was created), and information about the last time the Alarm was triggered (its Action was executed). An Alarm is also either active (turned on) or inactive (turned off and thus not working).
[SMAU]::Alarm::Name
The Name is a short description that you want to give to your Alarm. You may also leave it empty.
[SMAU]::Alarm::Time
Time is the description of all the moments when the Alarm should be triggered. Note: The resolution of the timer is limited to minutes.
It is best to explain the syntax with examples.
| Formula: | Triggered: |
| 08:00 | 08:00 (am) every day |
| 16:00 tue | 16:00 (04:00 pm) every Tuesday |
| mon tue wed 8:0 | 08:00 on specified days (three times a week in total) |
| d[mon;wed..fri] 9:00 | 09:00 on Monday, Wednesday, Thursday and Friday |
| d[0..4] | 00:00 (midnight), Sunday (0) to Thursday(4) each week |
| friday [10;12;14;16]:00 | 10:00, 12:00, 14:00 and 16:00 each Friday |
| 15:[00;30] d[1..5] | 15:00 and 15:30 on Monday to Friday |
| N-05-12 morning | 04:00 on May 12 each year (morning resolves to 04:00 to avoid activation of the Alarm if you work late and the computer is still on at midnight) |
| N-11-[..5] [12;13]:[0;30] | Four times a day on November 1 through 5, each year |
| [^2010;2020]-1-N fri | 00:00, all Fridays in January each year except for 2010 and 2020 |
| today 20:00 | 20:00 on the start day of the Alarm (if it was created later than at 20:00, it will never be triggered) |
| tomorrow [10;11]:20 | 10:00 and 11:00 on the day after the start day of the Alarm |
| this 2010-5-N monday [10..12]:00 | 10:00 and 12:00 on the first Monday of May in 2010 (this matches only the first matching day after the start time of the Alarm) |
| once 2010-5-N monday [10..12]:00 | Only 10:00 on the first Monday of May in 2010 (once means that the Alarm should be triggered only once) (so this formula doesn't make sense, but it is correct) |
| once 16:00 | 16:00, today or tomorrow, depending on what is the start time of the Alarm |
| mon 08:00 | this tue 09:00 | 08:00 each Monday and 09:00 on the next Tuesday (possibly today) (| separates time descriptions, and the whole description matches all the days that are matched by any of the separated descriptions) |
| [^..2015]-11-[15..21] thu | 00:00 on each third Thursday of November (Le Beaujolais Nouveau est arrivé !), but not before 2016 |
Some more examples are available by clicking on the + Templ button on the program form.
After you enter a formula into the Time field, you can check if it does what you meant it to do by clicking the Test button to the right. It will display a list of dates that match the formula.
[SMAU]::Alarm::Action
Action is a command or a list of commands (each command in a separate line) to execute when the Alarm is triggered. A command can be mostly anything that can be executed in Windows through Start | Run, and also some extra commands are added.
| Command: | Explanation: |
| <filename> | The file is opened or executed (the command is nonblocking - the next command is executed immediately) |
| <executable> <arguments> | The executable is run with the arguments specified (nonblocking) |
| <webpage> | The webpage is opened in the default browser. |
| <email_address> | Opens the default e-mail client and starts a new e-mail (equivalent to mailto:<email_address> in Start | Run, and it would also work as a command in [SMAU]) (nonblocking) |
| #wait <number> | Waits the specified number of milliseconds (if <number> is not specified, it defaults to 1000 (one second)) (blocking) |
| #beep <freq> <duration> | Makes a beep sound of the given frequency and duration (in milliseconds). If the parameters are not specified, plays the system default beep sound (blocking) |
| #bln <message> | Shows a balloon hint (if <message> is not specified, it is set to the name of the Alarm; if <message> is '-', the balloon message is closed) (nonblocking) |
| #msg <message> | Shows a message box (if <message> is not specified, it is set to the name of the Alarm) (the command is blocking - program waits for clicking OK) |
| #ask <message> <command_block_1> #else <command_block_2> #end | Displays the message with buttons Yes and No, and executes <command_block_1> or <command_block_2> dependently on the button pressed (can be nested) (the #else part can be omitted) (blocking) |
If this set of commands is not enough for you, you can write a *.bat or *.cmd file that does what you need, and specify running that file as your Alarm's Action.
The + File and + #cmd buttons make it easier to enter a file name or a command into the Action field.
To test if your Action works correctly, you can click the Test button to execute it immediately.
[SMAU]::Technical information
The program was tested under Windows XP, but is also expected to work under other versions of Windows.
The Alarms are stored in Alarms.data file, which is a text file, but should not be edited manually.
If you encounter any problems while using the program, feel free to contact me via e-mail. You are also welcome to send in any questions or suggestions about the program.
[SMAU]::Terms of Use
The program is © 2007 by TPReal.
The software is donationware: you can freely use it, copy it, give it to your friends and store it on your file server as long as:
[SMAU] is distributed "as is", without any warranty, expressed or implied, or promise of technical support or future upgrade. [SMAU] seems to work as expected, at least under the systems where it was tested, but the author disclaims any liability of any kind for any loss of data, damages, etc. or any consequential effect.
[SMAU]::Links