Fixed delay when resuming from sleep.
Fixed handling of alarm time-restriction for when the time range crosses midnight.
Removed balloon duration setting from alarms. This setting is no longer supported in Windows Vista and later.
Added setting for specifying a delay before Alarm++ will activate events after your computer wakes from sleep.
This is useful, for example, if some of your alarms require an Internet connection, and your computer takes a while before establishing one.
Some Windows XP users have reported issues with the property pages due to the 16×16 images.
Since I no longer have access to Windows XP (being that it’s almost ten years old), I can no
longer officially support it. However, I have worked-around this issue in XP by using the old-style
text tabs for the property pages.
Changed images on option property sheet from 48×48 to 16×16.
(Apparently an issue with Microsoft’s property sheet support requires all sheets to have the same size icons.)
Changed images on alarm property sheet from 48×48 to 16×16.
Note: This is the last version that fully supports Windows XP.
Fixed option buttons on alarm’s Media page.
(When they were rearranged in 8.0.6, they stopped being a group.)
Removed choice for sending e-mail via Outlook. If you currently have this option selected,
it will still function, but Alarm++ will recommend you switch to using an SMTP server.
Outlook support will be removed completely in a future version.
Clearer error message for when the alarm file passed on the command line doesn’t exist.
Attempt to save the alarm file again in the unusual event of a file system problem.
If the second attempt doesn’t work, Alarm++ will recommend
that you save the file elsewhere (using File > Save As).
Removed Select Full Row option. It’s now off, like Windows Explorer.
Removed event window On Top option. Event windows are now always displayed on top of other windows.
Removed event window Display on taskbar option. Event windows are now always displayed on the taskbar.
The installer now associates the .alarm file type with Alarm++ because Alarm++ does not
run with administrative rights on Windows 7.
On startup, if the alarm file was invalid, Alarm++ did not display an error message.
When two (or more) event windows are displayed on top of each other, the one on
top did not receive the mouse button click (unless it was first given focus).
Help for Alarm++ “scrap” files didn’t specifically state Alarm++ can’t open them directly.
Didn’t add alarms in a “scrap” file that was dragged onto Alarm++ main window.
Used to save alarm data twice when canceling snooze, skipping event, editing alarm properties, or editing an alarm’s name.
Eliminated a number of redundant saves, which improves performance.
When copying for clipboard or drag/drop operation, didn’t free ANSI memory if Unicode allocation failed.
Help (accessed from initial balloon tip) used to display help for main window and now displays Welcome page.
If an alarm’s speech text contained an accented (i.e., 8-bit) character,
it was not read correctly, leading to large alarm file sizes.
This update corrects that, but you will need to manually correct any
speech text that has accented characters.
In very, very rare circumstances, an event window that used animation would not be displayed.
Fixed alarm errors not being logged to the Alarm++ log window.
Windows XP and later seem incapable of saving the last file that was opened.
Alarm++ now keeps track of this itself, so the “Open the most recent alarm file at startup”
option should work every time now.
If a log file is requested (-log), it’s now created on the current user’s desktop
(instead of with the application).
Improved drawing of Alarm++ icon for system notification area.
Fixed crash if the user disabled the Windows No Recent Document History policy.
Double-clicking a URL in the Message field of the General alarm
page and in the event window again opens the URL in the default browser.
Improved drag and drop support so that now you can drag the text of an alarm and drop it
on the main window to create an alarm.
You can access the text of an alarm by editing an .alarm file or by dragging one or more
alarms and dropping them on Notepad.
You can e-mail an alarm by dragging and dropping one (or more) onto an e-mail message.
You can then drag an alarm from an e-mail onto the Alarm++ main window to add it to your alarms.
Improved drawing of Alarm++ icon for system notification area.
If the Alarm++ main window is open, a new event window would not appear on top.
The event window would also not come to the foreground even if the main window did.
Now, it still won’t come to the foreground, but it will if the main window does.
Added extra guards in case Microsoft Speech isn’t installed.
Added error message when Alarm++ tries to open a non-Alarm++ or corrupt file.
Display message when reading alarms if an alarm specifies an application that doesn’t exist.
Improved handling of case where no selection is made in the tray icon’s context menu.
Fixed a rare case where event window might not be displayed if the main window was open.
Set all cases of an invalid schema to clear the modified flag and reset to new file.
Fixed some rare instances of slight errors in date/time comparisons.
These should have had no visible effect.
They were just inefficient.
When alarms are dragged out of main window to Windows Explorer and saved as a file,
the resulting file cannot be dragged back onto the main window because Alarm++ tries to open
it as a data file (rather than pasting the contents as new alarms into the already-open file).
Added error-handling for this case.
The event window now displays the date/time before the offset is applied.
Fixed “evaluation” image not being removed when the user enters their registration code.
This version switches to a new numbering scheme, more like how Microsoft and Google do it.
The Alarm++ version number will now be major.minor.patch.build.
For example, rather than 8.00, this version is 8.0.0.
If version 7.11 used this scheme, it would have been 7.1.1.
The only effect this should have on users is that if the third number changes, you won’t need new registratrion information.
But if the first or second numbers change, you’ll need to request new registratrion information (still for free).
You can still use the Registration page, so it’s e-mailed to you immediately.
Alarm++ is compatible with Microsoft® Windows® XP, Vista, or later.
It may run on Windows 95/98/Me/NT4/2000, but that is no longer guaranteed (and it’s unlikely).
The Alarm++ data file has been changed from a binary machine-readable format to XML,
which is (after a fashion) human-readable.
The extension has also changed from .alm to .alarm.
Existing .alm files are automatically converted by Alarm++.
After conversion, Alarm++ prompts the user to save the file with the new .alarm extension.
It’s now possible for anyone to make changes to all alarms by using Notepad (or some other text editor)
to edit the .alarm file.
(Of course, you should only do this when it’s not opened by Alarm++.)
Alarms are now copied/pasted as XML instead of tab-delimited text.
Alarms can be copied/pasted as files, allowing them to be easily exchanged with other people.
Two new columns that display the “base” date and time of the alarm.
This is the date/time before the offset is applied, not necessarily when the next event will occur.
Added Unicode support.
An alarm created from a template or from another alarm now uses that alarm’s time,
rather than “rounding up” the current time to the next half hour.
Updated icons: toolbar, properties, menus.
Most of the images are from the wonderful set of Silk icons from famfamfam.
The user interface appearance has been updated with new “looks.”
Choose which one you prefer.
The list indicates the sorting column with a graphic in the column’s header and
by a slightly darker background for that column.
Now uses the list style for the alarm templates in the left pane.
The alarm properties window lists the various sections on the left side with
both icons and text in an Outlook-style toolbar.
The application options window lists the various sections on the left side with
both icons and text in an Outlook-style toolbar.
New color picker for the foreground and background colors of alarm message text.
The list of alarms is now sorted so that inactive alarms are always at the end of the list,
where they’re sorted by name.
Help is displayed when the user clicks the “welcome” balloon tip.
If Alarm++ isn’t registered, it displays an “Evaluation” image as the background.
Alarm++ wouldn’t exit (and would display an error message that an event window was open)
after an event that referenced an invalid media file went off.
Corrected an extremely rare bug that caused the Alarm++ icon not to appear in the system tray.
A specially-formatted alarm message could cause Alarm++ to crash when it tried
to send it as an e-mail.
A specially-formatted alarm message would not be included as the message body
when sent as an e-mail.
Dragging a default alarm template could create two default templates.
Removed ShellNew feature. It’s no longer possible to create a new alarm
file by right-clicking in Windows Exlorer and selecting New > Alarm File.
Handle case where the selected media files cannot be played.
Fix icons not displaying on property pages for an alarm.
If the computer was put into standby or hibernation while Alarm++ was looking for the next event of an alarm,
it was possible that, when the PC woke up and Alarm++ continued, it wouldn’t find the next event within its time limit.
If this happened, Alarm++ would set the alarm to have “No events” and, if the alarm was set to automatically be
deleted when it had no events left, Alarm++ would delete it.
This was extremely rare, but it’s fixed now.
The alarm pane (not the template pane) has the focus when Alarm++ starts up.
Alarm++ can now use speech in the events. There is a new Speech property page.
Please see the help file for details.
Cannot Pause/Play WAV files so that button is gone when a WAV file is played.
Windows-XP-themed controls are being used again.
Fixed not saving alarm file after shutting down Windows with open event windows.
(This affected the Options > Events > “When shutting down Windows …” option.)
Don’t delete an existing log file if -log switch isn’t used.
In other words, if -log isn’t passed and there’s a log file, leave it.
Set initial focus to view of alarms (not templates). This is what people usually want.
May have fixed checking for events after waking up from standby or hibernation.
Restored original method for playing WAVE files. This means there is no longer
a gap in the playback when repeating the WAVE file.
Added “*.cmd” as a type of program.
Updated Examples.alm with new Daylight Saving Time rules for the United States.
But just for Spring; I’ll update Fall after Fall 2006.
If an alarm runs Excel and Excel prompts the user (such as for a password),
and the user dismisses the event dialog before responding to the prompt, Alarm++ crashes.
This has been fixed.
Removed bug introduced in 7.02 that used 100% of the CPU when an event window was displayed.
Improved the responsiveness of the alarm Repeat page.
Fixed bug where Alarm++ wouldn’t start under Windows NT4.
Corrected some optimization code for alarms that repeat by minutes.
A very generous customer—who wishes to remain anonymous—translated Alarm++’s
interface into German. Thank you!
The event window and property pages no longer display errors if you delete the
entry in a number field. (Of course, if you try to accept that value, it will
display an error.)
You can now select multiple alarms and use the Skip Event command.
The Repeat alarm page should be faster to list the events.
An event that beeped without an event window would cause Alarm++ to think an
event window was present when it wasn’t, preventing Alarm++ from exiting
The Repeat Property page of the on-line help was in Unicode, which the Windows
help system couldn’t display properly.
Removed [useless] Apply buttons from Options and alarm property sheets.
“Sound” page is now a “Media” page where you can specify any audio or video file
for the alarm to play, such as MP3, WAV, WMV, WMA, AVI, etc.
Added a “Play/Pause” button to the event window, for when a media file is being
Created Template view so that the alarm templates are separated from the alarms
Added “Balloon tip” feature so that an event can temporarily display a balloon
tip instead of an event window that requires user action.
Added ability to set text color and text background color (24-bit color) for
Made current event’s date/time bold on the event window.
Added “Manual” option to Run page and a Run button to the event window.
More accurate SMTP authentication for the case where you don’t need an
Skipping an event now keeps that alarm visible in the list of alarms.
Options | Event now has the ability to set the delay between the event window
appearing and when the Snooze/Off buttons are enabled.
Added SMTP server port number to Options | Mail.
Moved the automation CheckingAlarms property from the View object to the
Fixed crash when searching for non-existent text from the first or last alarm in
Added icon to event window caption.
Closing the main window no longer hides any event windows that are displayed.
No longer add duplicate dates to the list of non-workdays.
Fixed lockup when selecting “Only on workdays” and repeating by weeks on a
non-workday (e.g., Saturday).
Can no longer create an alarm with conflicting sets of criteria, such as
repeating every Saturday but only on a workday.
Modified date string format in SMTP e-mail so more e-mail clients can parse it
correctly, and it still adheres to RFC822.
Added further error-checking when converting alarm file from an older version.
Explicitly kill timer after event window is dismissed.
Pasting an alarm that’s a default template into a list of alarms that already
has a default template no longer results in two default templates.
When copying/pasting alarms as text, the word “Transparency:” is no longer
prepended to the transparency value. Also, the time restriction is output
The Attachments listbox on the alarm’s Mail page now has a horizontal scroll bar
The Help button on the event windows now works.
If a sound file is specified on an alarm’s Sound property page, Alarm++ ensures
that a file is entered and that it exists.
The Browse button now works when the corresponding path ends with a backslash.
Alarms can now run file shortcuts (e.g., *.lnk files).
Added ability to edit an alarm’s properties from its event window. (You can edit
multiple alarms that way, but they must be closed in the opposite order they
were edited in.)
If Alarm++ is supposed to open the most recently opened alarm database, but
there isn’t a record of one, Alarm++ tries to find MyAlarms.alm and, if it
can’t find it, prompts the user to browse for an alarm file.
You can now pass special alarm variables to applications on the Run page.
Included new sample script files. One adds an alarm to whatever Alarm++ alarm
file is currently open. The alarm’s properties are passed to the script as command
line arguments. You can use this to automatically create large numbers of
alarms or have a program (such as DigiGuide) automatically create reminders for
events (such as television programs).
New option to disable the beep when a message box is displayed.
Added CTRL+K shortcut for “Skip Event” command.
Added ability to avoid prompting about open event windows when exiting Alarm++.
They can be automatically snoozed or dismissed.
New log window to indicate if there is an error when an alarm displays its event
window. The tray icon is highlighted when there is a new error. This means no
more message boxes interrupt you if Alarm++ encounters an error when running an
application or sending e-mail.
New Test button on Mail options page so you can easily test the SMTP
SMTP password is encrypted in the Registry to discourage casual examination.
Updated state icon in main window so that if an alarm is set to run an
application, the state icon is the icon for the Run page (not a folder).
New option to indicate if you want the event windows to have icons on the
New option to specify the animation Alarm++ should use when displaying the event window.
The event window now disables the Snooze and Off buttons for one second
after it’s first displayed. This prevents the user from accidentally dismissing
the event window before they register its appearance. (This value can be
customized in the Registry manually.)
Added new size for event window: tiny.
Alarm++ automatically ensures the main window is completely within the current
monitor’s work area. (On computers with multiple monitors, it uses the monitor
closest to the main window.)
Moved Window page’s “Center on screen” option to a more intuitive location on
Added ability to move event window by clicking anywhere in the window-not just
in the caption-and dragging it.
New command line switch to start Alarm++ in pause mode. Useful if you’ve been on
vacation, didn’t skip the events beforehand, and you don’t want a dozen alarms
all going off at once.
The Application control (on an alarm’s Run page) and the Sound control (on an
alarm’s Sound page) now auto-complete their paths to make it easier for you to
enter file paths and Internet URLs.
Corrected some references to “Perpetual Motion” in the help files.
Fixed Find when searching only the selected alarms.
Find now wraps to the beginning of the search range after reaching the end of
the search range.
Added new “Check for Update” command. This command contacts the 12noon Web site
and uses your browser to tell you if there’s an update to Alarm++ or not. The
only information Alarm++ passes to the Web site is what version of Windows you
use, the version of Alarm++ you’re running, and whether it’s registered.
A new alarm’s “Repeat Until” date is now set to the current date when editing an
alarm that hasn’t specified Repeat Until.
In the previous version, on Windows 2000 or XP, if Alarm++ was able to create an
Alarm++ key in the Registry’s HKEY_LOCAL_MACHINE hive, it assumed that it
should be able to create values there as well. If the permissions were set so
that this wasn’t true, Alarm++ still didn’t check HKEY_CURRENT_USER for the
registration information. The effect was for Alarm++ to appear unregistered
even though it had been registered. This has been fixed.
On one known instance, Alarm++ failed to start successfully. This fixes that.
Modified logging so that all log output would be written to the output file in
the Release build.
Renamed company from “Perpetual Motion Software” to “12noon”. This means that
the automation ID has changed from “PerpetualMotion.Alarm.Document”
Registration via COM automation is no longer supported for security reasons.
At startup, if Alarm++ detects that you have probably installed a newer version,
it now asks you if you want to register. If you have your new
registration information ready, this prevents an error when Alarm++ cannot
convert your old database.
Added support for e-mail attachments when using an SMTP server for
outgoing e-mail from Alarm++.
Added support for authentication when using an SMTP server that
Added new option on Advanced page to restrict events to a certain range of
times. Of course, this can only be used when an alarm is repeating
by minutes or hours.
The message control (on the General page and the event window) has a context
menu with Cut, Copy, Paste, Delete, Select All, Undo, and Redo
The message control (on the General page and the event window) highlights
URLs and you can double-click on them to open them.
If you select an e-mail option for an alarm, Alarm++ now warns you if you
haven’t configured outgoing e-mail support.
The Add button in the Workdays dialog now automatically advances the date
picker control to the next date, making it much easier to add a
series of non-workdays, such as vacations.
The event list on an alarm’s Repeat page is now updated during “idle” time. That
means there should be fewer cases of those ellipses at the end of the event
list because Alarm++ will automatically add more events in the background.
(When you have an alarm with many events, you might notice the list being
updated as you move the mouse.)
Changed the Offset field on the General Property page so that you can explicitly
indicate that the offset is “before” or “after” the specified event date/time.
Occasionally, the event list on the alarm Date property page would list an event
Windows XP: Alarm++ occasionally displayed an error when trying to create its
Registry entries. This is very rare, but if it happens, Alarm++ no longer
displays an error message, which was annoying every time it starts up. This
error doesn’t materially affect Alarm++’s operation-the only affect is that you
would probably not be able to double-click on a .alm file to open it.
After an alarm was over, if it wasn’t automatically deleted, the date/time would
be the next event’s date/time if the alarm used “Repeat until.” It should be
the last event’s date/time. This has been fixed.
If you tried to browse for a sound file (on an alarm’s Sound page) and clicked
Cancel, the sound file would then be empty. This has been fixed.
Fixed some quirks with the Browse feature on the alarm Mail page.
The speaker beep now uses the frequency and duration settings when the event
You can now type a negative sign (“-“) into the Offset field.
Visual Studio.NET’s MFC 7.0 has a bug that requires oleacc.dll, which isn’t
available for Windows 95. This version fixes that.
The Browse buttons (e.g., on the Sound page, Run page, and Register
dialog) work on Windows 9x and NT4 again.
Fixed Help menu commands. A number of them either failed or brought up the wrong
Removed Help on “Using Help” because it’s not supported in HTML help.
Changed all URLs from “www.skst.com/perpetualmotion/”
When an alarm sends e-mail via SMTP, the “Date:” string is now has the bias from
Universal Time written according to RFC822.
When a large number of events is created by a change to an alarm’s Repeat page
(such as “Repeat every minute), it can take a very long time to fill the event
list. Now, Alarm++ stops looking for events after 250 milliseconds.
Fixed problem where Alarm++ would not add its icon to the tray after Windows
When Alarm++ was paused, the main window wasn’t updated with changes to alarms. (6.12)
On Windows NT4, images are not drawn on the menus. This is a temporary
workaround for NT4 only. (6.11)
Fixed bug where an alarm that sends e-mail would occasionally request a receipt.
Fixed bug where About window sometimes displayed nothing when Alarm++ was an
Fixed bug where the speaker of some computers wouldn’t beep.
Fixed an issue with copying/pasting alarms into text applications.
Fixed bug where Alarm++ would often crash when the Find dialog exited.
Increased speed with which Alarm++ populates the event list on the Repeat page.
The Attachments field is disabled if the e-mail protocol is SMTP.
Fixed memory leak when Alarm++ would wait for the next alarm.
Added an option to skip an event or move to the next workday (or non-workday).
This has the side-effect of adding the ability to specify “first workday of
month” and many other combinations related to workdays and non-workdays.
Event window can now be transparent (Windows 2000 and later only).
When editing a template alarm or an inactive alarm, the date is automatically
set to today’s date. The “Repeat Until” date is also set to today’s date.
When advancing by months and one or more weekdays are specified, the date is no
longer changed if it’s after the last date of the month. (I know this sounds
weird because I’m not explaining it clearly, but trust me, it’s an
Added support for Windows XP themes.
Improved copy/paste of alarms into programs such as Word, Excel, and Notepad.
All of the various fields are now copied to the clipboard separated by tabs,
which makes it easier to print your alarm information from another program.
Improved drawing of the next event time in the tray icon.
Added the option to use SMTP for e-mail support.
Enlarged Options | Workdays window.
Creating a new alarm by double-clicking on the tray icon no longer places
parentheses around the alarm name.
Added minutes, hours, non-workdays, and weeks to the Advanced Offset option. Now
you can set an alarm for 3:00pm (for example) and have it go off 10 minutes
earlier (or 10 hours or whatever).
Changed “spinner” for event window sizes to a more typical combobox.
Alarm++ now displays the tray icons correctly. Previously, they were drawn
Alarm++ now correctly offsets events when the offset is by a positive number of
Previously, if a user was running Alarm++ 5.5x and it was set to open a version
5.5x database automatically, installing Alarm++ 6.0 over it and running it
again would cause an error and terminate Alarm++. That has been fixed.
The snooze time displayed in the event window was off by one minute if it was
between :30 and :59 seconds.
The text box in the small event window is now the same size as the one displayed
in the General tab when editing an alarm.
The Alarm++ tray icon now shows the time of the next alarm.
There are two new commands: Pause and Resume. You can temporarily pause Alarm++
so that it won’t check for new events-for example, if you know you’re going to
be at a meeting or running errands for two hours and don’t want to have events
going off while you’re gone. When you resume Alarm++, it will check for any
events that occurred while it was paused.
If you have an older version of shell32.dll (before 4.71), which does not
support the SHGetSpecialFolderPath function, Alarm++ no longer tries to load
Added a DOS command line example alarm to the Examples.alm file.
Updated Product version number.
Version 6.01 always made the Alarm++ main window visible when it started up.
Added Daylight Saving Time examples to Examples.alm.
If you have the “Open most recent database at startup” option set and upgrade to
6.00, it will be unable to open the older version of the database until you
register. Previously, the application would terminate when detecting this,
giving you no chance to register. This is fixed.
If you have an older version of shell32.dll (before 4.71), it does not support a
function that Alarm++ uses to determine the location of the “My Documents”
folder. It now detects this and avoids making that call. This only affects the
location where the Save dialog box starts when saving a database for the first
When an alarm occurs every hour or more often, it will sometimes stop going off.
This has been fixed.
The Help button now works on the confirmation message boxes for deleting and
The Workdays dialog box no longer adds dates to the listbox more than once.
If you used automation to access the currently running instance of Alarm++, when
the script ended, another script could not reacquire the current instance of
Alarm++. This was because Alarm++ was removed from the Running Object Table
(ROT) prematurely. The workaround was to quit and restart Alarm++ before the
script ends. This has been fixed. Multiple sessions can now acquire Alarm++
from the ROT.
If an error occurs on one of an alarm’s property pages, the associated page is
The TO listbox on the alarm’s Mail property page now scrolls vertically.
Alarm++ is now packaged as a Microsoft Installer package, using Microsoft’s
Visual Installer tool. This type of installation provides a safer, smaller
(~50%), more accurate, and complete install/uninstall than InstallShield’s
Alarm++ now provides alarm templates-alarms that you create and can use to make
other alarms. This gives you an unlimited source of defaults.
Alarm++ now supports SMTP e-mail (if MAPI and CMC are not provided by your
You can now add and subtract days (and workdays) from the selected event date
(on the Advanced page).
When editing an alarm which isn’t using the Repeat Until option, if the Repeat
Until date is in the past, it’s set to today.
The event window displays the date/time of the next snooze, based on the values
in the snooze fields. This date/time is updated as time passes, so if the event
window is left up for 5 minutes, the next snooze date/time advances by 5
After certain error messages, the appropriate alarm property page is activated.
New icon for Advanced properties page.
The event window can have three sizes: small, medium, and large.
The state icons have been improved.
You can now use Ctrl+T as a shortcut to access the Italic command in the Message
There is a new column in the main window which displays the events remaining for
each alarm. You can also sort by events.
Find/Find Next is now implemented. It searches each alarm’s name and message
Alarms are now also copied to the clipboard as text. This means you can paste
them into any application that accepts text, such as a word processor.
You can now reorder the columns in the main window by using drag/drop.
There is a new option for positioning the event window: center on current
window. This centers the event window over whatever window you are working in
when the event occurs.
The date and time columns in the main window are now right-aligned, which should
When you create an alarm database, it is saved in your “My Documents” folder as
MyAlarms.alm, unless a file already exists with that name. (If you want to save
it somewhere else, you can use the File | Save As command.)
An error was displayed when starting Alarm++ with the “Open most recent file at
startup” option selected and there were no recent files to open. This has been
The event window can be minimized.
The event window now displays the date and time of the next event.
The list of alarms now displays an alarm’s name and message in a tooltip when
you hover the mouse cursor over it.
A new option allows you to specify that Alarm++ should open the last alarm
database when it starts.
The Cut, Copy, and Paste options are now available on the main window’s context
The following bug has been fixed: An event window is displayed. The user presses
the Snooze button when the current time is between 31 and 59 seconds,
inclusive. The snooze interval extends the next event to the 59th minute of the
hour. This would invalidate the alarm’s event date/time and prevent the event
from going off.
Column widths are now saved correctly.
The ampersand character (<&>) is now displayed correctly in all
message boxes and in the tray icon’s tooltip.
The mail features now work correctly even if no mail profiles have been created.
Note: If you are a registered user, you need to obtain a new
registration key for this version. Please see our web site for details.
Alarm++ now defaults to providing no mail support. This is because a user who
has not installed an e-mail service would be prompted to configure their mail
service instead of being prompted for a mail profile. Now, the first-time user
must manually enable mail support, using the View | Options command and the
Mail Profile page. If a user upgrades from a previous version of Alarm++, their
settings are not affected.
Windows NT users can now register Alarm++ for all users on the computer, if they
have administrator privileges. See the on-line documentation for more details.
You no longer are required to have administrator privileges (if you’re using
Windows NT) to detect if Alarm++ has been registered.
The calendar control now fits better on the alarm’s Repeat property page.
Alarm++ now beeps when displaying a prompt asking you to confirm an operation if
the alarm is snoozing. You can turn this off by using the View | Options
command to bring up the Options General page and turning off the “Confirm if
The Windows Explorer “New | Alarm Database” command was not installed properly.
This has been fixed.
If an alarm’s name is over 55 characters (approximately), the system tray
tooltip for the alarm icon now works correctly, by truncating the string and
appending an ellipses before displaying it.
Alarms now go off on the :00 second, and snooze times are rounded up to the
nearest minute and :00 seconds.
The Tip dialog’s Next Tip button is now enabled correctly.
The spin button for the snooze and repeat controls no longer inserts a thousands
separator-which caused the field’s value to be flagged as an error.
Previously, after modifying weekdays that affect the next event of an alarm, the
view would not be updated. For example, the next event of an alarm, which
subtracts 1 weekday, is 2 February 1999. If you later add this
date to the list of non-workdays, the alarm should now avoid 2 February
1999. However, the list of alarms is not updated to show
1 February 1999. In addition, if the change meant the alarm should
now go off, it wouldn’t. These problems have been corrected.
Previously, if subtracting workdays moved an event’s time before the current
date/time (e.g., when the user is setting an alarm), Alarm++ would not
select the correct event date. Now, it selects the earliest possible date, even
if that date is not the result of subtracting the specified number of days-it
is the earliest possible date. See the documentation for details.
Alarm++ now correctly updates its display when the user modifies the Regional
settings for the date/time formats.
Alarm++ now correctly deletes an alarm (which is flagged to be deleted after the
last event) if the last event is used by an action such as a Skip Event
or Cancel Snooze command.
You can now specify that Alarm++ should ignore an event if it occurred over a
certain number of minutes, hours, days, or weeks in the past. See the alarm
General properties page.
There is an option to select the entire row in the main window’s list of alarms.
When it’s active, you can select a row by clicking anywhere in the row. See the
options General properties page.
The help system has changed from WinHelp to HTMLhelp. This means there is now a
better search engine, in addition to a Favorites tab where you can bookmark
topics of special interest.
If the Windows taskbar crashes and restarts (which it often does), Alarm++ now
automatically restores its tray icon.
The message field in the event window is now exactly the same size as the
message field in the alarm property page.
You can now specify that the event window be positioned in the middle of any of
the four sides of the screen. See the alarm Window properties page.
If one or more alarms are snoozing when you close an alarm database, you now
have the option of saying “Yes to All” when Alarm++ prompts you to confirm the
closing for each snoozing alarm.
Modified all URLs to point to Perpetual Motion Software’s new web site: www.skst.com/perpetualmotion.
You can now drag and drop a sound file onto the Options property sheet’s Alarm
Defaults tab. Previously, Alarm++ and Explorer would lock up.
The Snooze Date column in the main window is now properly displayed. Previously,
it was the same as the event date.
Note that the calendar.ocx file is no longer shipped with Alarm++. You can
safely delete the System folder and this file from your Alarm++ installation
You can now set an alarm to play a sound during the event, without displaying
the event window.
The “Repeat by N years” feature had a problem where it only repeated in months
where the dates matched. This has been corrected so that you can repeat by
years and specify certain weekdays and weeks of the month.
Alarm++ now checks the alarms when the computer returns from a suspended state.
When an event with sound but no event window goes off, the sound now plays.
You can now toggle the bullet style of text in the message control.
The MAPI mail protocol is now supported. This means if you use a mail client,
such as Eudora, you can now use the mail support in Alarm++.
The default sound has been moved from the Control Panel’s Sound applet, to the
Options Alarm Defaults page.
If you play the sound on the Sound property page, it is stopped when you select
another page or close the property sheet.
You can now specify that an alarm run the specified application (web page,
script, whatever) when the initial event occurs, when a snooze event occurs,
when the user clicks the Snooze button, or when the user clicks the Off button.
This is supported via automation as well.
There is a new Options dialog which now contains most of the Options from the
The font used by the main display window (which list the alarms) is now stored
in the Windows Registry, instead of in each alarm database. This means that the
font you select will be used to display all alarm databases; it is no longer
specific to each alarm database.
You can now specify that you want an alarm to delete itself after all of its
events are finished.
You can now specify whether to use the long or short date format in the main
You can now specify whether or not you want to be prompted when deleting one or
You can now specify whether or not you want to confirm deleting an alarm or
closing the alarm database, if the alarm is snoozing.
You can now test the action on the Run property page without saving the alarm
and using the Test command.
The icons on the property pages’ captions have (hopefully) been improved.
Changed the Run property to RunOnEvent.
Alarm++ no longer lets you create an alarm with a repeating sound without
displaying the event window. Previously, this would mean that the user could
not acknowledge the event.
Note that the tray icon in Alarm++ acts (opens the main window and displays the
context menu) on the UP click-not on the DOWN. This is consistent with the Windows
Interface Guidelines for Software Design (Microsoft Press, Chapter 10
“Integrating with the System” pp. 268-270). However, WIGSD does not specify
whether an application must react to the down-click or to the up-click.
Alarm++ now reacts to the down click of a mouse button on the tray icon. (See
above notes for details.)
This version requires COMCTL32.DLL version 4.70 or later.
Please see Install.txt for more details.
You can now specify that an alarm “repeat every N years”.
Added the ability to specify that an alarm only goes off during certain months
of the year (e.g., April through October). This feature is supported via
automation as well.
The event window (if you have indicated one should appear) is now displayed
before any application you specified is executed or any e-mail you specified is
Some minor changes to the menu bar, to improve consistency across Microsoft
Windows applications. There is now a keyboard shortcut to create a new alarm:
If you want to start Alarm++ and have the main window open, pass “/show” or
“-show” on the command line. For example: “alarm.exe -show MyStuff.alm”.
The view’s context menu can be displayed with Shift+F10 when no item is selected
in the main window.
There are more commands on the view’s context menu: Hide and View.
The commands on the context menus are arranged in a more standard order.
There are more commands on the toolbar: Test, Skip Event, Cancel Snooze, and
various help commands.
The Test command now has a Control+T accelerator.
The button bitmaps are now displayed on the tray icon’s context menu.
The time control on the General property page is now more sophisticated. It uses
the standard Windows “time picker” control.
The Browse dialog on the Run tab has some new entries: Script Files, Batch
Files, and Internet Shortcuts. (You could always select these files, but now
there are specific filters for them.)
In version 5.00, the event window became the active window when it was
displayed. Specifically, if you were typing and an event occurred, you ended up
typing in the Snooze field. This has been fixed. The event window once again is
displayed as the top window, but it is not “active”-you will not accidentally
type in it.
Fixed the help link in the Contents section for “Main Window.”
When opening the main window, it is now always placed on top of all windows.
Previously, it was sometimes left in the background.
If you opened an alarm with zero events and dismissed the property page without
accessing the Repeat page, it would not report that the alarm had zero events.
This has been corrected.
A message can now be written in rich text format (RTF). You can make characters
bold, underline, italic, and strikeout; you can use different fonts, colors,
sizes, etc. You can left-justify, center, right-justify, and bullet paragraphs.
You can also select a default font for the messages of new alarms.
Alarm++ now supports automation-you can now control Alarm++ from C++, Visual
Basic, VBScript, JScript, etc. Please see the help file for details on the
You can now specify an alarm to repeat until a certain date; in addition to
specifying a certain number of events or forever.
You can now specify advanced date information for an alarm. Specifically, you
can set it to go off N days or N workdays BEFORE the set time. This lets you
set alarms for the second to last workday before the 1st of the month. You can
also specify which days of the week are workdays for you.
You can now test an alarm. It does not affect the number of remaining events.
You can now skip an event. It decrements the number of remaining events, if it’s
not repeating forever.
You can now cancel the snooze of an alarm, when it’s snoozing.
If you edit an alarm’s properties and click OK when it has 0 events left, you
are asked if you want to edit it again. If you choose to, the Repeat page is
automatically selected for you.
There is a tip of the day feature which can come up everytime you start Alarm++,
or only when you request one.
The current date/time is now displayed in the status bar.
There is a toolbar button to open an alarm’s properties. There is also a toolbar
button that drops down a list of recently-opened files.
You can now change the font used by the list of alarms.
The “Display event message box” option has been moved from the Run tab to the
new Window tab.
You can now specify where on the screen you want the event window to be
displayed: a corner of the display, centered on window or screen, default, or
at the cursor. You can also specify what the default value of this setting
should be for new alarms.
You can now drag/drop a sound file on the Sound tab to enter it in the “Sound
file” field, instead of clicking the Browse button.
You can now drag/drop file(s) on the Mail tab to attach them to the mail message
instead of clicking the Attach button.
You can now drag/drop a file on the Run tab to enter it in the “Open” field,
instead of clicking the Browse button.
You can now drag/drop a supplied .ini file on the Register dialog to enter the
Name and Key values, instead of doing it manually or clicking the Browse
The property pages now have tab icons to locate them more easily at a glance.
When you delete multiple alarms, you can confirm that you want them all deleted,
instead of confirming them one at a time. You can also cancel the operation.
The edit control for the number of events is now disabled if the Forever option
You can now press Enter (instead of Ctrl+Enter) to start a new line in the
message edit control.
You can now snooze by hours or days, in addition to minutes.
The date/time that a snoozing alarm will go off is now shown in the main window.
Now, if an alarm’s event occurs while the event window is up for that alarm, it
advances to the next event, decrementing the number of events (if it’s not
Previously, if an alarm was snoozing, and the user closed its database, and
opened it again after both the snooze and event date/times expired, the alarm
would display an event window for the snooze date/time. If the user pressed the
Off button, the alarm would go off again, because of the event date/time being
in the past as well. This has been fixed: when the database is opened, any
snoozing alarms have their event date/time moved into the future.
The lower spin limit on the number of intervals (i.e., Repeat every N) is now 1
instead of 0. There is also no longer a thousands separator.
The event window no longer displays temporarily if it’s not supposed to display
There is no longer a problem when a lot of alarms go off at startup and one or
more of them tries to run an application which does not exist.
Alarm++ now reacts when the user changes the date/time in the Control Panel.
When the tray icon’s tooltip text says “Tomorrow”, it is now updated at midnight
to say “Today”. Previously, it was not updated.
A “hand” cursor is now visible when mouse hovers over a link in the About box.
The main window no longer retains the focus when you hide it.
The main window now (almost) always appears on top when it’s opened.
The list of alarms no longer flickers when opening a large database.
Fixed a subtle bug which prevented the main window from opening when the user
did two clicks on the tray icon in a row, but they did not qualify as a
The alarm database is no longer saved every time the window is activated-just
when it’s moved or resized.
The view is now updated after an alarm is snoozed or turned off, via the event
Under Windows NT 4.x, the calendar control (on an alarm’s properties Repeat
page) now paints properly when changing months.
Alarms can now be set to go off at an interval of minutes (in addition to hours,
days, weeks, and months).
Alarm++ now allows you to set an alarm for the fourth week of a month, in
addition to the first, second, third, and last week of the month.
Mail support has been added. You can now e-mail an alarm database to someone
directly from Alarm++.
The e-mail address and web site URL in the About box are are now hotlinks; you
can click on either one to open it.
The appropriate toolbar bitmap is now drawn to the left of every menu item (like
Microsoft Office, Microsoft Visual Studio, and others). If you want to disable
this feature, there is a menu command to turn it off.
The tooltip in the tray icon has a slightly different format: <date>
<time> “alarm name”
The menu command, File-Exit, is now (more accurately) called File-Hide.
Changed tray icon so a single mouse click opens the alarm list, instead of a
double-click. A double-click now creates a new alarm.
A new alarm now rounds-up the time in the Time field to the next half hour. It
always adds at least 5 minutes. If you create an alarm at 9:25, it will enter a
default time of 9:30, and if you create an alarm at 9:26, it will enter a
default time of 10:00.
If the user modifies an alarm with zero events and tries to save it, they are
prompted to confirm that they really want to save with zero events.
The date/time displayed in the event window is now correct, even after a snooze.
If the user Snoozes an alarm or turns it OFF (after snoozing) and does not open
the main window and doesn’t make any further changes to the database, the
alarm’s snooze state was not saved to the database-this has been fixed.
The “third weekday of the month” setting has been fixed. The problem was that,
when selected, it went off every week BUT the third week. We apologize for any
Changed mnemonic of Properties menu command from “P” to “r” to avoid conflicts.
When editing an alarm’s label, Ctrl+X, Ctrl+C, and Ctrl+V operated on the alarm
rather than on the label’s text. This has been fixed.
Under certain conditions the date on the Information page would be incorrect.
This has been fixed.
Occasionally, if an alarm went off when Windows started, it would encounter a
fatal error. This bug has been fixed.
When an alarm is snoozed and goes off again, the date/time displayed in the
event window is not the date/time of the SNOOZED event-instead it is the
date/time of the NEXT event.
This version now registers the calendar control itself. This means that there is
no need for a more complex installation script-it can run successfully after
just unzipping the files into a folder.
There was a bug that caused Alarm++ to hang if you chose Repeat every N months
and then selected the 29th, 30th, or 31st of the month. This has been fixed.
There was a bug that caused a change to the date picker control on the General
property page to ignore the new date. If you modified the date, using the date
picker control, and pressed OK without switching to another page, Alarm++
ignored the date change. This has been fixed.
Alarm++ now has a calendar control on the Information page so you can select the
date for a one-time alarm without switching pages.
If you try to change tabs when the time format is invalid, Alarm++ now beeps (in
addition to selecting the invalid entry).
The event window now does not get the focus when it pops up. This means that
when the event window appears, it won’t “suddenly” start receiving your
keystrokes-you can be typing when an event goes off and won’t lose any of your
The “Default Beep” selection on the Sound property page now beeps correctly when
the event occurs.
If you close an unsaved alarm database when there are no alarms in it, Alarm++ does not prompt you for a filename.
There are two new property pages (Sound and Run), replacing the Actions page.
There is a new checkbox on the Run page, used to indicate whether or not you want Alarm++ to run the specified application when the alarm goes off.
Support for right-click and Shift+F10 context menus has been improved.
The help has been improved in certain areas.
There are some cosmetic improvements to the interface.
The tray icon now changes to visually indicate when no events are pending. Added “minutes” text to Snooze field on Information page. Increased maximum snooze time to 1 day (1440 minutes).
Alarm++ automatically saves any changes: new alarms, user changes, deleted alarms, events, snoozes, etc. If it is a new, “Untitled” database, Alarm++ prompts the user to select a folder and filename after the first change. The user can cancel the save, but Alarm++ will prompt again after the next change. The Save.On.Shutdown option has been removed. It is not needed anymore because the alarm database is automatically saved after every change.
When deleting multiple alarms at the same time, if the user answers No when prompted to confirm, Alarm++ does not delete some of the other alarms. This problem has been fixed.
If an alarm is snoozing and the user changes the next event time to one which is earlier than the snooze time, the alarm’s event will continue to occur until the user presses the Off button. This problem has been fixed.
If an alarm’s snooze interval goes beyond the next event, the alarm’s event will continue to occur until the user presses the Off button. This problem has been fixed.
The list of alarms now allows multiple select, delete, copy, cut, paste, and
drag/drop of the alarms. Added SelectAll menu command.
An obscure bug has been fixed. It occurred in the following case: An alarm has
only one event remaining. The event goes off, and the user presses Snooze. The
snooze interval expires and the event goes off again. The user presses the Off
button. The alarm would have the number of events remaining set to Repeat
Fixed an error that sometimes crashed Alarm++ when the user entered an invalid
Errors resulting from the calendar control not registering properly or from
incompatible (old) Microsoft Windows system DLLs are now reported better.
Renamed “Alarm” menu to “Edit”.
You can now set the sound for an alarm back to the default beep if you change
your mind after selecting a sound file.
New state image for alarms that have more than one event left.
New icon images for alarms to indicate no action, send email, start app, or
You can now play the sound that you have selected for an alarm by pressing the
Test Sound button on the Actions page of the alarm’s property sheet.
There is now a toolbar with Context Help among other useful buttons. The toolbar
state is saved when you close the application.
You can now specify if you want mail support or not-and if so, whether you want
to be prompted for a mail profile or if you want Alarm to use a specific mail
profile each time. (This works on 95 and on NT.)
Here’s the problem: A user sets an alarm to go off every day for the next 10
days. Then, the user doesn’t run the application Alarm for 5 days; when the
user finally runs the application, it displays a single message box for the
first day and sets the alarm to go off on the next day. It didn’t decrement the
number of events by 5-it was still 9. In other words, Alarm was only counting
the actual notifications, not the number of valid events. This has been
corrected-Alarm now correctly decrements the event count.
Sometimes, after the user manually deleted all of the recipients of timed mail,
the recipients field would be filled with garbage. This has been fixed.
A Registry entry is now correctly created so that the user can create new alarm
databases by right-clicking inside a folder and selecting the “New-Alarm
This update no longer disables certain features in the unregistered version.
ALL features of the alarms are enabled. The number of alarms is limited, and
you must register the application to be able to create an unlimited number of
New icons for on/off states. The radio button could be misleading-it seemed to
be clickable, and implied that an alarm was part of a larger group. A checkmark
better indicates whether an alarm is active or not.
Changed name of “Effects” property page to “Actions”.
Upgraded to MS Visual C++ 5.0.
The calendar control on the alarm property pages now uses tooltips to show you
what you can click on and what its function is.
The user can now set an alarm to send mail to any set of mail addressees at a
specific time and interval. You can also attach files to the message.
The user can choose to have any changes to the alarm database saved
automatically when Windows 95 shuts down. (Usually, the Alarm application
prompts the user to save the changes.)
The snooze interval can now range from 1 to 300 minutes (5 hours).
The user can now directly edit the application edit field, rather than just
browsing for an application. So you can now launch “applications” such as
“www.microsoft.com” or open folders at specific times by entering something
An alarm’s snooze status is now saved in the alarm database. So you can close an
alarm database when an alarm is snoozing, and, when you open it later, that
alarm will still be snoozing. (Although, the snooze interval may have ended and
you will, of course, be notified.)
Alarm now uses the registry for the most-recently-used filelist, not alarm.ini.
You can delete the alarm.ini in your Windows directory.
Now, Alarm can open zero-length files. This means that the Windows Shell’s New
command now works for Alarm Database files.
If you open a new alarm file or create a new one while an alarm is snoozing, you are now warned about that. Pressing delete while renaming an alarm “in-place” no longer tries to delete the alarm itself.
The list of events in the Properties dialog “remembers” the time setting if it is repeating by months. If specific weeks of the month are selected, the list of events now selects the appropriate days of the week.
When the user changes the time on an alarm’s properties page and returns to the Date page, the list of events is updated with the new time.
Redesigned and rewritten for Windows 95.
New Windows 95 controls. New Windows 95 help format. New, cleaner user interface which conforms to Windows 95 guidelines. Tray icon keeps the minimized Alarm window out of your way. A tooltip tells you which alarm is next. You can specify an application to run without displaying a message for the event.
Advancing an alarm for a specific week of a month now works correctly.
Dynamic registration-you do not need to wait for our company to mail a new version to you. We will simply provide you (via e-mail, if you wish) with a registration key to “unlock” the extra features. (After we’ve received the registration fee, of course.)
Uses Microsoft’s 3d controls for edit, static, combobox, listbox, checkbox, and option buttons. Changed event window-default is now Off.
Sound static control is now right-aligned so the filename is always visible.
Using the full path to an application in the “Message or Program:” field along with parameters works.
The user may only select a sound file for an alarm if their pc supports sound.
In addition, the application tries to play sound only if the pc supports sound.
There is a new option in the Alarm dialog box. The user can choose to have the sound associated with an alarm repeat until they acknowledge the alarm.
If an alarm has a sound file associated with it, that file’s directory is the default directory when the user selects a new sound file.
The application now uses Microsoft’s 3D DLL to draw three-dimensional dialog box frames.
The app no longer GPFs if an alarm goes off while the app is active.
The full string entered for an alarm’s name is now displayed in the listbox. Previously, the last character was truncated. In these cases, the am/pm indicator was usually truncated as well. Both problems have been corrected.
Alarm no longer GPFs when changing printers in Excel from the Printer-Setup dialog.
You can now sort the list of alarms by the alarm’s name or by the date that the alarm is set to go off next. Alarms now support being set for a specific week of a month: First Week, Second Week, Third Week, and Fourth Week. The event window no longer gets the focus when it is displayed. This enables you to continue working in your application without being interrupted. In addition, it is set to always be the top window, so you won’t lose it.
To work around a bug in Windows(TM), when the application is minimized, Alarm does not display the date/time in the title. (When the title was updated every minute, Windows(TM) interprets this as a user action, causing the screen saver timer to reset to zero.)
Name of “File” menu changed to “Alarm” for greater interface consistency.
The help file has been corrected to match the (new) “Alarm” menu’s choices.
There is a new window that appears when an alarm goes off. This window can be used to change the next snooze interval. It also features an edit control into which go any characters that the user was typing when the alarm goes off (for example, in a word processor).
If the user no longer wants to have an alarm play a sound file, they must manually delete the sound file name from the “SoundFile=” line in the section for that alarm in the alarm.ini file.
The Alarm’s timer now zeros itself on the seconds, so alarms now go off when the # of seconds (according to the system clock) are zero.
The main window’s title is now updated when the user changes the International settings in the Control Panel.
The user can now associate a sound file with each alarm. When an alarm goes off, it will play the associated sound file.
When the application is minimized, screen savers do not get activated.
The listbox now formats the date and time according to the Control Panel’s International settings ([Intl] in the win.ini file).
The title now displays the date and time according to the Control Panel’s International settings ([Intl] in the win.ini file).
When an alarm’s message is displayed, the current date and time is displayed in the message.
There is no longer a problem with the hour changing when an alarm is created that crosses into or out of the daylight saving time period.
“How to Register” has been added to the Help menu.
The main window’s help menu is now functional.
Alarm now remembers the position of the main window from the last time the application ran.
There is a small problem related to crossing Daylight Saving Time boundaries. If you are currently in DST (e.g., 9-1-92) and create an alarm (10:00am) which is to go off when not in DST (e.g., 12-1-92), it will be set to 9:00am.
However, if you modify the alarm and set the time back to 10:00am, it will be correct afterwards.
Does not use [International] settings in win.ini to interpret time field and to display the dates and times in the main listbox and in the main window title.
The application now uses the .ini and .hlp files with the same name. A repeat frequency of 0 causes an infinite loop, so it is now considered to be an invalid value.
When an alarm’s message is a fully-qualified path to a file, the application changes to that directory and then executes the named file.
The calendar control now uses keys 1-7 to toggle the state of the weekdays.
Instead of displaying message text when an alarm goes off, the user can set an alarm to execute a command line when an alarm goes off.
.ini file change: Change “Days=” to “Weekdays=”, change “Time=hh:mm” to “Time=hhmm”. The “Month=” entry is now 0-based, instead of 1-based.
When the user closes the alarm application or exits Microsoft Windows(TM), any alarms that are snoozing ask the user whether or not they want to close Alarm.
When an alarm goes off, it the same alarm already has a message on display, it does not display another message.
A help button is now on the alarm dialog box.
If no weekdays are selected when the user OKs changes to an alarm, an error message is displayed.
The window always starts in the (0, 0) position.
When a second instance is run, the first instance of the application is not restored; just a beep is sounded.
There is no longer any support for registration (disable features, About text).
Microsoft Windows(TM) 3.1 version control information added to resource file.
Automated installation tool added (available with registered product).
The radio buttons no longer act as one group (a bug introduced in v1.20).
Added calendar control. Simplified user interface.
.ini file change: Delete “On=”, remove negative from “Date=”, “Month=”, and “Year=”.
Snooze interval can be set to 0 minutes which indicates that the application will not ask the user if they want to “hit snooze” when the alarm goes off.
Running a second instance will activate the previous instance instead of displaying an error message.
When exiting the application, if an alarm is snoozing, the user is asked if they really want to close the application.
Now, when an alarm goes off, it finds next match for the alarm in the future.
When exiting, it does not notify the user of snoozing alarms.
User is permitted to give alarms duplicate names.
Began using pmscctrl.dll.
Use MessageBeep() function with appropriate parameters for MultiMedia support.
The OK button is occasionally incorrectly enabled when the user is specifying the “Every n Xs” controls.