Compartir a través de


Activación de notificaciones toast desde aplicaciones de escritorio

Las aplicaciones Win32 empaquetadas y desempaquetadas pueden enviar notificaciones interactivas tipo "toast" tal como lo hacen las aplicaciones UWP. Esto incluye aplicaciones empaquetadas (consulta Crear un nuevo proyecto para una aplicación de escritorio winUI 3 empaquetada); aplicaciones empaquetadas con ubicación externa (consulte Conceder identidad de paquete mediante el empaquetado con ubicación externa); y aplicaciones sin empaquetar (consulte Creación de un nuevo proyecto para una aplicación de escritorio winUI 3 sin empaquetar).

Sin embargo, para una aplicación Win32 sin empaquetar hay algunos pasos especiales. Esto se debe a los distintos esquemas de activación y a la falta de identidad de paquete en tiempo de ejecución.

En este tema, enumeramos las opciones que tienes para enviar una notificación tostada en Windows 10. Todas las opciones son totalmente compatibles...

  • Persistir en el Centro de Actividades
  • Puede activarse tanto desde el elemento emergente como dentro del Centro de actividades.
  • Poder activarse mientras el EXE no se está ejecutando

Todas las opciones

En la tabla siguiente se muestran sus opciones para admitir notificaciones tipo toast dentro de su aplicación de escritorio y las funciones correspondientes compatibles. Puede usar la tabla para seleccionar la mejor opción para su escenario.

Opción Elementos visuales Acciones Entradas Se activa en proceso
Activador COM Soportado Soportado Soportado Soportado
no CLSID com/Stub Soportado Soportado No está soportado No está soportado

Opción preferida: activador COM

Esta es la opción preferida que funciona para las aplicaciones de escritorio y admite todas las características de notificación. No tenga miedo del "activador COM"; tenemos una biblioteca para aplicaciones de C# y C++ que hacen que esto sea muy sencillo, incluso si nunca ha escrito un servidor COM antes.

Elementos visuales Acciones Entradas Se activa en proceso
Soportado Soportado Soportado Soportado

Con la opción activador COM, puedes usar las siguientes plantillas de notificación y tipos de activación en la aplicación.

Tipo de plantilla y activación Empaquetado Desempaquetado
Primer plano de ToastGeneric Soportado Soportado
Fondo de ToastGeneric Soportado Soportado
Protocolo ToastGeneric Soportado Soportado
Plantillas antiguas Soportado No está soportado

Nota:

Si agrega el activador COM a la aplicación empaquetada existente, las activaciones de notificación Foreground/Background y Legacy activarán el activador COM en lugar de la línea de comandos.

Para obtener información sobre cómo usar esta opción, consulte Enviar una notificación del sistema local desde aplicaciones de C# de escritorio o Enviar una notificación del sistema local desde aplicaciones WRL de Win32 C++.

Opción alternativa: no COM/Stub CLSID

Esta es una opción alternativa si no puede implementar un activador COM. Sin embargo, sacrificará algunas características, como la compatibilidad de entrada (cuadros de texto en notificaciones del sistema) y la activación en proceso.

Elementos visuales Acciones Entradas Se activa en proceso
Soportado Soportado No está soportado No está soportado

Con esta opción, si es compatible con el escritorio, tiene muchas más limitaciones en cuanto a las plantillas de notificación y los tipos de activación disponibles, como se muestra a continuación.

Tipo de plantilla y activación Empaquetado Desempaquetado
Primer plano de ToastGeneric Soportado No está soportado
Fondo de ToastGeneric Soportado No está soportado
Protocolo ToastGeneric Soportado Soportado
Plantillas antiguas Soportado No está soportado

En el caso de las aplicaciones empaquetadas, simplemente envía notificaciones toast como lo haría una aplicación UWP. Cuando el usuario hace clic en el mensaje emergente, tu aplicación se iniciará desde la línea de comandos con los argumentos de inicio que especificaste en el mensaje.

En el caso de las aplicaciones sin empaquetar, configure el AUMID para poder enviar notificaciones emergentes y luego especifique un CLSID en el acceso directo. Puede ser cualquier Identificador Único Global (GUID) aleatorio. No agregue el servidor o activador COM. Va a agregar un "stub" CLSID COM, lo que hará que el Centro de actividades mantenga la notificación. Tenga en cuenta que solo puede usar los toasts de activación de protocolo, ya que el stub CLSID interrumpirá la activación de cualquier otro toast. Por lo tanto, tienes que actualizar la aplicación para admitir la activación del protocolo y hacer que el protocolo del sistema active tu propia aplicación.

Recursos