QuickReminder v0.6
Posted: 30 Mar 2015, 16:52
Post History
This project was first released on the original AutoHotkey forum. The original post can be found here. New versions of the project, if any, will be posted on this forum.
Introduction
There are a lot of time management programs out there. In the past, I used Microsoft Outlook to manage my general calendar and for general-purpose task management. I currently use a freeware program called Personal Reminder for general-purpose daily, weekly, and monthly reoccurring reminders.
What is missing from my time management arsenal is a tool to quickly set up same-day, one-use-only, reminders. Microsoft Outlook is a resource behemoth and I don't use it anymore. Personal Reminder is OK but it has several idiosyncrasies that make it difficult to tolerate as a short-term reminder program. I created QuickReminder to fill the gap.
QuickReminder
Key features:
Starting with v0.6, this script will only run on AutoHotkey v1.1+. All versions (ANSI, 32-bit Unicode, and 64-bit Unicode) are supported. The script should work on Windows XP and greater but it has only been tested on Windows 7 Professional SP1.
The Code
The pertinent files are as follows:
This section is for converting the QuickReminder configuration file. It's mostly about changes that may be needed to convert from v0.5 to v0.6. However, this information may be useful for future versions as well.
The QuickReminder configuration file, i.e. QuickReminder.ini, contains the text for each Reminder and the text for the Note List. Starting with v0.6, the script can run on a Unicode version of AutoHotkey which can read and write Unicode characters. Whether or not Unicode characters are correctly saved in the configuration file depends on how the file is encoded. Converting an existing configuration file may or may not be needed. Here's what you need to know.
There is no formal documentation but here are a few notes...
A few things to know...
This project was first released on the original AutoHotkey forum. The original post can be found here. New versions of the project, if any, will be posted on this forum.
Introduction
There are a lot of time management programs out there. In the past, I used Microsoft Outlook to manage my general calendar and for general-purpose task management. I currently use a freeware program called Personal Reminder for general-purpose daily, weekly, and monthly reoccurring reminders.
What is missing from my time management arsenal is a tool to quickly set up same-day, one-use-only, reminders. Microsoft Outlook is a resource behemoth and I don't use it anymore. Personal Reminder is OK but it has several idiosyncrasies that make it difficult to tolerate as a short-term reminder program. I created QuickReminder to fill the gap.
QuickReminder
Key features:
- Quick Add. New reminders can be quickly added by using a global hotkey (the default is Ctrl+Alt+R) or by double-clicking on the tray icon. The dialog was designed for quick keyboard entry and navigation. Reminder time can be entered as a countdown (hours, minutes, seconds) or as a date/time.
- Friendly alarms. Yes, the alarms do take up screen real estate and they do make a noise, but the alarm windows are relatively small and they don't steal focus when displayed. If desired, the alarm text is spoken when the alarm is raised.
- Snooze. Reminder alarms can be snoozed to a future time. Select from a list of snooze times or enter a custom snooze time.
- Reminder List. To help manage pending reminders, a Reminder List window is provided. From this window, reminders can be added, edited, deleted, put on hold, and restarted..
Requirements
Starting with v0.6, this script will only run on AutoHotkey v1.1+. All versions (ANSI, 32-bit Unicode, and 64-bit Unicode) are supported. The script should work on Windows XP and greater but it has only been tested on Windows 7 Professional SP1.
The Code
The pertinent files are as follows:
- Project: QuickReminder.zip. This archive includes source, executables (ANSI, Unicode, and Unicode x64), icons, sound, and help files.
- Documentation: Future
This section is for converting the QuickReminder configuration file. It's mostly about changes that may be needed to convert from v0.5 to v0.6. However, this information may be useful for future versions as well.
The QuickReminder configuration file, i.e. QuickReminder.ini, contains the text for each Reminder and the text for the Note List. Starting with v0.6, the script can run on a Unicode version of AutoHotkey which can read and write Unicode characters. Whether or not Unicode characters are correctly saved in the configuration file depends on how the file is encoded. Converting an existing configuration file may or may not be needed. Here's what you need to know.
- New users. If running QuickReminder for the first time or if the configuration file has been deleted, everything is handled automatically. If running the ANSI version of AutoHotkey, the configuration file will be encoded for ANSI. If running a Unicode version of AutoHotkey, the configuration file will be encoded for UTF-16.
- ANSI users. If using an existing configuration file (v0.5 or earlier), no changes are necessary because the configuration file is already encoding for ANSI.
- Unicode users. Only uses ANSI characters. If using an existing configuration file (v0.5 or earlier) but if only ANSI characters are used, no changes are necessary. The configuration file is encoded for ANSI so only ANSI characters are read from and written to the file. This might useful if there is need to run both the ANSI and Unicode version of AutoHotkey.
- Unicode users. If Unicode characters are used or will be used in the future, the current configuration file (v0.5 or earlier) must be encoded for UTF-16. There are many conversion utilities out there but the simplest way to do it is to open the file in Notepad, perform the "Save As" command, change the encoding to "Unicode", and then press the "Save" button to save the file.
- Converting from Unicode to ANSI. If the configuration file has been converted to UTF-16, converting it back to ANSI is not necessary even if only using the ANSI version of AutoHotkey. Text will converted to/from ANSI as needed. However, the file can be converted to ANSI if desired. Open the file in Notepad, perform the "Save As" command, change the encoding to "ANSI", and then press the "Save" button to save the file.
There is no formal documentation but here are a few notes...
- Snooze
When an alarm window is displayed, the user can enter (or select from a list) a snooze value that will reschedule the reminder to a future date/time. The Snooze field can contain two types of values:- Time Period. This is amount of time from the current time. The format is any number optionally followed by the letters "s" (seconds), "m" (minutes), "h" (hours), "d" (days), or "w" (weeks). Spaces and additional characters are ignored. If no letters are included, minutes are assumed. The following are valid snooze time periods:
- 10s
90 seconds
45
37.5 mins
23 h
12.75 hours
2 days
6 weeks
- 10s
- Clock Time. This is the actual clock time and can be entered in the 12-hour or 24-hour format. The 12-hour format is HH:MM.SS AM|PM and the range is 12:00 AM (midnight) to 11:59.59 PM. The 24-hour format is HH:MM.SS and the range is 00:00 (midnight) to 23:59.59. Many components of the format are flexible/optional. As long as program identifies the snooze value as a clock time and can interpret the value, it can be used. The following are valid snooze clock times:
- 12:39.23 AM
15:23.57
4:11.37 Post Meridian
2a
00:7
10 P.M.
6:2p
- A clock time is always considered to be a time in the future. If it is currently 4 PM on Monday and snooze is set to 3 PM, the alarm will be set to 3 PM on the following day (Tuesday).
- The total amount of time that can be set using this option is 24 hours (less 1 second). To snooze to a specific clock time that is more than 24 hours from the current time, edit the reminder by clicking on the "Edit" button.
- 12:39.23 AM
- Time Period. This is amount of time from the current time. The format is any number optionally followed by the letters "s" (seconds), "m" (minutes), "h" (hours), "d" (days), or "w" (weeks). Spaces and additional characters are ignored. If no letters are included, minutes are assumed. The following are valid snooze time periods:
A few things to know...
- Compatibility. The script is designed to run on all versions of AutoHotkey v1.1+ and most versions of Windows (Windows XP+) . The reality is that I only have one machine to test this software on. If you experience any problems with your version of AutoHotkey and/or your version of Windows, please let me know. I will try to correct the problem.
- Portable version only. i.e. not User Account Control (UAC) aware. This program reads and writes to a configuration file in the program's folder. Future versions may be UAC aware or UAC optional.
- Limited locale support. A few of the program's date/time fields support the user's locale settings but most use a static format. Sorry 'bout that.
- External functions. This project uses a number of external functions which have been included in a "_Function" folders. Some of the functions are mine and should be clearly marked and documented. Functions written by others should be clearly marked but may contain custom modifications. Thanks to the original authors for sharing their work.
- Unreleased libraries. This project uses one or more unreleased libraries. The library functions called by this project are working but other functions in these libraries may not be working and/or may not be tested. Do not use these libraries for other projects. You have been warned.
- Limited documentation. With the exception of the information in this post, documentation/help is currently limited to a few tooltips and Help buttons in the Options window. Be sure to read the release notes for additional documentation/tips.