CReminders is a C++ and Python written program that runs in the background and lets you create custom reminders using Windows ToastNotifications (pop-ups). In addition to a custom title, message, days, and time, you can add an icon and a button for the notification.
The way CReminders works is by adding itself (main.cpp
) to the CURRENT_USER
's start up through the Windows Registry. The program accesses the info.txt
file where the user adds all necessary information for it to run. CReminders then waits for the specified day(s) and time and then creates the notification by running toastNotification.py
, using:
ShellExecuteA(nullptr, "open", notificationPath.c_str(), notificationContent.c_str(), nullptr, SW_HIDE);
CReminders passes the content of the notification as an argument, which is received by toastNotification. After some off-camera parsing, the notification is displayed using Versa Syahputra's Winotify module.
This file holds all the data necessary for the program to run, this includes:
Parameter | Description |
---|---|
Active | Whether or not this reminder is active |
Title | Reminder's title |
Message | Reminder's message |
Icon | Absolute path of the image e.g., → C:\Users\User1\pictures\img1.png |
Duration | Time the notification will remain as a pop-up before being added to the Action Center short = 5s, long = 30s |
Button | Whether or not this reminder will have a button |
ButtonText | The text shown over the button |
ButtonLaunch | The link (if any) the button will launch when clicked. Must contain "https://" e.g., → https://www.google.com |
Time | 24 hour format e.g., → 16:30 |
Days | Days in which the reminder will be active e.g., → monday, wednesday, friday e.g., → everyday |
Attached below is an example of an info.txt file. Notice the ticketing (-----) enclosing for each notification block. It is crucial that every block is properly enclosed in its upper and lower boundaries. Blocks must share enclosings when adjacent to each other, as shown here.
This executable allows the user to perform several useful features, these are as follows:
Command | Description |
---|---|
show |
Quickly gives a preview of all reminders |
deactivate |
Removes the program from the Registry and stops its execution. To reactivate it you must run CReminders.exe again |
reset en |
Resets the info.txt file to its original state, in english. Note that this will delete all the reminders that you created |
CReminders es un programa escrito en C++ y Python, el cual corre en segundo plano y te permite crear recordatorios personalizados usando notificaciones de Windows (pop-ups). Además de un título, mensaje, días, y hora personalizada, puedes agregar un icono y un boton para la notificación.
Para lograr eso, CReminders se añade a sí mismo (main.cpp
) al start up de CURRENT_USER
a través del Registro de Windows. El programa accesa el archivo info.txt
, en el cual el usuario añade toda la información necesaria para que este se ejecute. Tras eso, CReminders espera por el día y tiempo especificado y crea la notificación ejecutando toastNotification.py
, usando:
ShellExecuteA(nullptr, "open", notificationPath.c_str(), notificationContent.c_str(), nullptr, SW_HIDE);
CReminders pasa el contenido de la notificación como argumento, el cual es recibido por toastNotification. Tras eso la notificación se muestra usando el módulo Winotify de Versa Syahputra.
Este archivo contiene toda la información necesaria para que el programa se ejecute, esta incluye:
Parámetro | Descripción |
---|---|
Activo | Si esta notificación estará activa o no |
Titulo | Título de la notificación |
Mensaje | Mensaje de la notificación |
Icono | Ruta absoluta de la imagen e.g., → C:\Users\Usuario1\imagenes\img1.png |
Duracion | Tiempo que la notificación durará como pop-up antes de ser movida al Centro de Actividades corta = 5s, larga = 30s |
Boton | Si esta notificación tendrá un botón o no |
BotonTexto | El texto que se mostrará en el botón |
BotonLaunch | El link (si es que hay) que el botón abrirá al ser presionado. Debe contener "https://" e.g., → https://www.google.com |
Hora | En formato de 24 horas e.g., → 16:30 |
Dias | Días en los cuales la notificación estará activa e.g., → lunes, miercoles, viernes e.g., → diario |
Abajo esta adjunto un ejemplo de un archivo info.txt. Nota como cada bloque de notificación esta encapsulado por barras horizontales (------). Es de suma importancia que cada bloque este correctamente encapsulado en los límites superiores e inferiores. Estos límites deben ser compartidos cuando hay bloques adyacentes, tal como se muestra abajo.
Este ejecutable le permite al usuario realizar varias funciones, estas son las siguientes:
Comando | Descripción |
---|---|
mostrar |
Muestra rápidamente como se verían los recordatorios |
desactivar |
Elimina el programa del Registro y detiene su ejecución. Para volver a activarlo se debe ejecutar CReminders.exe de nuevo |
reset es |
Resetea el archivo info.txt a su estado inicial, en español. Note que esto borrara todos los recordatorios que haya creado |