Código fuente completo de la aplicación ProyectoA Notificaciones Windows TOAST. Esta aplicación permite pasarle un fichero JSON por argumento de la línea de comandos para mostrar un mensaje TOAST nativo de Windows, integrado con el Centro de Notificaciones de Windows. Dicho mensaje es personalizable a través de un fichero JSON: asunto, cuerpo, imagen lateral, imagen superior, imagen en el mensaje, pie, botón de cerrar y botón de acción.

Funcionamiento de la aplicación ProyectoA Notificaciones Windows

ProyectoA Notificaciones Windows es una aplicación de línea de comandos diseñada para mostrar notificaciones nativas en sistemas operativos Windows 10 y 11. Su propósito es recibir la información de una notificación a través de un fichero de configuración en formato JSON y presentarla al usuario.

La aplicación se ejecuta de forma silenciosa en segundo plano, muestra la notificación y se cierra automáticamente.

La aplicación permite mostrar mensajes nativos Windows VCL, simples, con este aspecto:

O bien notificaciones más avanzadas con imágenes y botones de acción:

Para ejecutar la aplicación, se debe invocar desde la línea de comandos (CMD o PowerShell), pasándole como único argumento la ruta completa al fichero JSON que contiene la configuración de la notificación.

Sintaxis:

Estructura de ficheros que genera/usa la aplicación

La aplicación utiliza y genera varios ficheros en su directorio de ejecución para funcionar:

  • config.json (Configuración Global):
  • notificacion_template.xml (Plantilla de Diseño):
  • mensaje.json (Contenido del Mensaje):
  • Notificacion.log (Log de Actividad):
  • Notificacion.historial.json (Historial de Duplicados):

 Fichero de Configuración (config.json)

Este fichero permite personalizar el comportamiento global de la aplicación.

ClaveDescripciónValor por Defecto
app_idIdentificador único de la aplicación para Windows. Es importante para que Windows agrupe las notificaciones.ProyectoA.Notificaciones
app_display_nameEl nombre que se muestra en el Menú Inicio y en la configuración de notificaciones de Windows.ProyectoA Notificaciones
minutos_limite_duplicadosTiempo en minutos para evitar mostrar notificaciones idénticas (mismo título y cuerpo).120
icono_notificacion(Opcional) Ruta a un fichero .ico para usar en el acceso directo del Menú Inicio. Si está vacío, se usa el icono del ejecutable.«»
ruta_xml_template(Opcional) Nombre del fichero de plantilla XML para las notificaciones PowerShell.notificacion_template.xml

Parámetros del fichero JSON para formar el mensaje

El fichero de composición del mensaje debe ser un documento de texto en formato JSON que define la apariencia y el comportamiento de la notificación. A continuación se detallan todos los parámetros disponibles.

Parámetros Básicos (Obligatorios)

ClaveTipoDescripción
tituloStringEl texto principal que aparece en la primera línea de la notificación.
Es obligatorio.
cuerpoStringEl texto del mensaje. Para crear múltiples líneas, se pude utilizar el carácter de nueva línea n.
Es obligatorio.

Parámetros Avanzados (opcionales, para tipo_notificacion: «powershell»)

Estos parámetros solo tienen efecto si se especifica «tipo_notificacion»: «powershell».

ClaveTipoDescripción
tipo_notificacionStringDefine el método de visualización de las notificaciones: nativo de Windows con la app (VCL) o PowerShell. Opciones: «normal» (notificación VCL simple) o «powershell» (notificación Toast avanzada con PowerShell).
Por defecto es «normal».
duracionStringControla el tiempo que la notificación permanece visible en pantalla antes de pasar al Centro de Actividades. Opciones: «corta» (por defecto) o «larga».
pie_notificacionStringUn texto corto que aparece en la parte inferior de la notificación con una fuente más pequeña. Ideal para indicar el origen del mensaje (ej: «Generado por ProyectoA»).
mostrar_boton_cerrarBooleanSi se establece en true, se mostrará un botón «Cerrar» explícito en la notificación. Por defecto es false.
accion_principalStringUna URL o un protocolo de aplicación (ej: https://…, mailto:…) que se ejecutará si el usuario hace clic en la notificación o en el botón «Abrir». Si se define este parámetro, aparecerá un botón «Abrir».
imagen_logoStringRuta completa a un fichero de imagen (ej: «D:logosicono.png»). Se mostrará como un icono pequeño a la izquierda del texto.
imagen_arribaStringRuta completa a un fichero de imagen. Se mostrará como un banner grande en la parte superior. Recomendación de tamaño: relación de aspecto 2:1 (ej: 364×180 píxeles).
imagen_inlineStringRuta completa a un fichero de imagen. Se mostrará debajo del texto principal, ocupando todo el ancho de la notificación.

Nota sobre las imágenes: las claves imagen_logoimagen_arriba, y imagen_inline son independientes y pueden usarse solas o en combinación. Si la ruta a un fichero de imagen es inválida o no se proporciona, simplemente no se mostrará esa imagen, sin generar errores.

Plantilla de Notificación (notificacion_template.xml)

Este fichero permite personalizar la estructura del XML de las notificaciones. Debe seguirse la documentación de Microsoft a tal efecto. La aplicación reemplaza los marcadores ##…## con el contenido correspondiente. Si un marcador no tiene contenido (por ejemplo, no se proporciona imagen_logo), toda la línea se elimina.

Contenido por defecto:

Ejemplos de Ficheros JSON

Ejemplo 1: Notificación simple

Ejemplo 2: Notificación PowerShell avanzada

Ejemplo 3: Notificación PowerShell con solo botón Cerrar

Ejemplo 4: Notificación PowerShell con solo botón Abrir

Ejemplo 5: Notificación PowerShell sin imagen superior

Ejemplo 6: Notificación PowerShell sin imagen superior y sin imagen en mensaje

Archivos generados por la aplicación

La aplicación crea dos ficheros auxiliares en el mismo directorio donde se encuentra el ejecutable:

  • NotificacionesWindows.log (Log de Actividad):
  • NotificacionesWindows.historial.json (Historial de notificaciones):

Requisitos del sistema para la ejecución de la aplicación

  • Sistema Operativo: Windows 10 o Windows 11.
  • Acceso directo en el Menú Inicio: para que las notificaciones avanzadas de tipo PowerShell funcionen correctamente, la aplicación debe tener un acceso directo en el Menú Inicio de Windows. La aplicación creará este acceso directo automáticamente la primera vez que se ejecute. Este paso es necesario para que Windows pueda asociar las notificaciones con la aplicación a través de su AppUserModel.ID.

Descarga del código fuente en Delphi 12.2 y del ejecutable de la aplicación

A continuación, mostramos la descarga del código fuente completo en Delphi 12.2 de la aplicación ProyectoA Notificaciones Windows Toast, la descarga incluye el fichero ejecutable de la aplicación y ficheros de ejemplo JSON:

Código fuente en Delphi 12.2 de la unidad principal de la aplicación UnidadNotificacion.pas

A continuación, mostramos el código fuente de la aplicación ProyectoA Notificaciones Windows TOAST

Código fuente del fichero del proyecto NotificacionesWindows.dpr

Código fuente del fichero UnidadNotificacion.pas

Ejemplo en C# para ejecutar aplicación de notificaciones