Notificaciones de Windows con Python

Notificaciones de Windows con Python


Python

En este artículo se explica cómo crear y mostrar notificaciones de Windows utilizando Python. Para ello se utiliza el módulo winotify, el cual permite mostrar notificaciones personalizables en Windows 10 y Windows 11.

Este módulo proporciona las siguientes características, mismas que lo diferencian de otros:

  • Permite mantener las notificaciones en el centro de notificaciones del sistema.
  • Puede incluir hasta 5 botones por notificación.
  • Ejecuta acciones a través de la propia notificación.

Instalación

Para instalar el módulo winotify, se debe ejecutar el siguiente comando en la terminal:

pip install winotify

Uso

Para comenzar es necesario importar el módulo winotify en el archivo principal:

from winotify import Notification, audio, Notifier

Crear Notificación

Para crear una notificación, se debe crear una instancia de la clase Notification, la cual recibe los siguiente parámetros:

  • Identificador
  • Título
  • Contenido de la notificación
  • Duración de la notificación
  • Icono de la notificación
toast = Notification(app_id="Windows app",
                     title="Winotify Test Toast",
                     msg="Hello World!",
                     duration="short",
                     icon=r"c:\path\to\icon.png")

Mostrar Notificación

Para mostrar la notificación, se debe ejecutar el método show de la instancia de la clase Notification:

toast.show()

Con esto, se mostrará la notificación en el sistema y posteriormente se cerrará, de acuerdo con la duración definida.

Notificacion simple

Agregar Sonido

Para agregar un sonido a la notificación, se debe crear una instancia de la clase audio, la cual recibe como parámetro el path del archivo de audio y si se desea que se repita o no. En este caso se utiliza el sonido por defecto del sistema. Asi mismo, se pueden agregar sonidos predeterminados del sistema.

toast.set_audio(audio.Default, loop=False)

Agregar Botones

Para agregar botones a la notificación, se debe utilizar el método add_actions de la instancia de la clase Notification, el cual recibe como parámetros el texto del botón y la acción a ejecutar al hacer clic. En este caso se agrega un botón que dirige a un sitio web.

toast.add_actions(label="Google", launch="https://google.com")

Notificacion con botones

Como se mencionó anteriormente, las notificaciones permanecen en el centro de notificaciones del sistema.

Notificacion en el centro de notificaciones

A continuación se muestra el codigo completo utilizado para mostrar la notificación:

from winotify import Notification, audio, Notifier

toast = Notification(app_id="Windows app",
                     title="Winotify Test Toast",
                     msg="Hello World!",
                     duration="short",
                     icon=r"C:\Users\user\Desktop\icon.png")

toast.set_audio(audio.Default, loop=False)

toast.add_actions(label="Google", launch="https://google.com")

toast.show()

En conclusión, este módulo resulta muy útil, dado que es relativamente fácil de implementar. Además de que posible integrarlo con una aplicación como medio para mostrar resultados de una acción, por ejemplo con el icono de la bandeja del sistema explicado en el artículo Icono de la Bandeja del Sistema en Python de este blog.

Para consultar el código completo y documentación, se puede visitar el repositorio de GitHub.