Condividi tramite


Notifiche di tipo avviso popup dalle app desktop

Le app Win32 in pacchetto e non in pacchetto possono inviare notifiche di tipo avviso popup interattive proprio come le app UWP. Sono incluse le app in pacchetto (vedere Creare un nuovo progetto per un'app desktop WinUI 3 in pacchetto), le app in pacchetto con percorso esterno (vedere Concedere l'identità del pacchetto creando un pacchetto con percorso esterno) e le app in pacchetto (vedere Creare un nuovo progetto per un'app desktop WinUI 3 in pacchetto).

Tuttavia, per un'app Win32 senza pacchetti esistono alcuni passaggi speciali. Ciò è dovuto ai diversi schemi di attivazione e alla mancanza di identità del pacchetto in fase di esecuzione.

In questo argomento vengono elencate le opzioni disponibili per l'invio di una notifica di tipo avviso popup in Windows 10. Ogni opzione supporta completamente...

  • Salvataggio permanente nel Centro notifiche
  • Essere attivabili sia dal popup che dall'interno del Centro notifiche
  • Essere attivabile mentre il file EXE non è in esecuzione

Tutte le opzioni

La tabella seguente illustra le opzioni per supportare gli avvisi popup all'interno dell'app desktop e le funzionalità supportate corrispondenti. Puoi usare la tabella per selezionare l'opzione di visibilità migliore per lo scenario in questione.

Opzione Elementi grafici Azioni Input Attiva in-process
Attivatore COM ✔️ ✔️ ✔️ ✔️
Nessun CLSID COM/Stub ✔️ ✔️

Opzione preferita - Attivatore COM

Questa è l'opzione preferita che funziona per le app desktop e supporta tutte le funzionalità di notifica. Non aver paura del "attivatore COM"; è disponibile una libreria per le app C# e C++ che semplificano questa operazione, anche se non è mai stato scritto un server COM in precedenza.

Elementi grafici Azioni Input Attiva in-process
✔️ ✔️ ✔️ ✔️

Con l'opzione attivatore COM, puoi usare i modelli di notifica e i tipi di attivazione seguenti nella tua app.

Modello e tipo di attivazione Incluso nel pacchetto Unpackaged
ToastGeneric Foreground ✔️ ✔️
ToastGeneric Background ✔️ ✔️
ToastGeneric Protocol ✔️ ✔️
Modelli legacy ✔️

Nota

Se aggiungi l'attivatore COM all'app in pacchetto esistente, le attivazioni di notifica Foreground/Background e Legacy attiveranno l'attivatore COM anziché la riga di comando.

Per informazioni su come usare questa opzione, vedere Inviare una notifica di tipo avviso popup locale dalle app C# desktop o Inviare una notifica di tipo avviso popup locale dalle app WRL Win32 C++.

Opzione alternativa - Nessun CLSID COM/Stub

Questa è un'opzione alternativa se non è possibile implementare un attivatore COM. Tuttavia, si sacrificheranno alcune funzionalità, ad esempio il supporto dell'input (caselle di testo sugli avvisi popup) e l'attivazione in-process.

Elementi grafici Azioni Input Attiva in-process
✔️ ✔️

Con questa opzione, se supporti il desktop, sarai molto più limitato nei modelli di notifica e nei tipi di attivazione che è possibile usare, come illustrato di seguito.

Modello e tipo di attivazione Incluso nel pacchetto Unpackaged
ToastGeneric Foreground ✔️
ToastGeneric Background ✔️
ToastGeneric Protocol ✔️ ✔️
Modelli legacy ✔️

Per le app in pacchetto, è sufficiente inviare notifiche di tipo avviso popup come un'app UWP. Quando l'utente fa clic sull'avviso popup, l'app verrà avviata dalla riga di comando con gli argomenti di avvio specificati nell'avviso popup.

Per le app non in pacchetto, configurare l'AUMID in modo che sia possibile inviare avvisi popup e quindi specificare anche un CLSID nel collegamento. Può trattarsi di qualsiasi GUID casuale. Non aggiungere il server/attivatore COM. Stai aggiungendo un CLSID COM "stub", che causerà la persistenza della notifica da parte del Centro notifiche. Osserva che è possibile usare solo avvisi popup di attivazione del protocollo, perché lo stub CLSID interromperà l'attivazione di qualsiasi altra attivazione di tipo avviso popup. È quindi necessario aggiornare l'app per supportare l'attivazione del protocollo e attivare il protocollo dell'avviso popup.

Risorse