Ativando notificações do sistema de aplicativos da área de trabalho
Os aplicativos Win32 empacotados e não empacotados podem enviar notificações do sistema interativas, assim como os aplicativos UWP. Isso inclui aplicativos empacotados (consulte Criar um novo projeto para um aplicativo de desktop WinUI 3 empacotado); aplicativos empacotados com localização externa (consulte Conceder o identificador de pacote por empacotamento com localização externa); e aplicativos não empacotados (consulte Criar um novo projeto para um aplicativo de desktop WinUI 3 não empacotado).
No entanto, para um aplicativo Win32 não empacotado, há algumas etapas especiais. Isso se deve aos diferentes esquemas de ativação e à falta de identidade do pacote em tempo de execução.
Neste tópico, listamos as opções que você tem para enviar uma notificação do sistema no Windows 10. Cada opção suporta totalmente...
- Persistindo na Central de Ações
- Ser ativável a partir do pop-up e dentro da Central de Ações
- Ser ativável enquanto seu EXE não está em execução
Todas as opções
A tabela abaixo ilustra suas opções para dar suporte a notificações do sistema em seu aplicativo da área de trabalho e os recursos compatíveis correspondentes. Você pode usar a tabela para selecionar a melhor opção para seu cenário.
Opção | Visuais | Ações | Entradas | Ativa em processo |
---|---|---|---|---|
Ativador COM | ✔️ | ✔️ | ✔️ | ✔️ |
Sem CLSID COM / Stub | ✔️ | ✔️ | ❌ | ❌ |
Opção preferida - ativador COM
Essa é a opção preferencial que funciona para aplicativos da área de trabalho e dá suporte a todos os recursos de notificação. Não tenha medo do "ativador COM"; temos uma biblioteca para aplicativos C# e C++ que torna isso muito simples, mesmo que você nunca tenha escrito um servidor COM antes.
Visuais | Ações | Entradas | Ativa em processo |
---|---|---|---|
✔️ | ✔️ | ✔️ | ✔️ |
Com a opção ativador COM, você pode usar os seguintes modelos de notificação e tipos de ativação em seu aplicativo.
Modelo e tipo de ativação | Empacotados | Desempacotado |
---|---|---|
ToastGeneric em primeiro plano | ✔️ | ✔️ |
Plano de fundo genérico do Toast | ✔️ | ✔️ |
Protocolo ToastGeneric | ✔️ | ✔️ |
Modelos legados | ✔️ | ❌ |
Observação
Se você adicionar o ativador COM ao seu aplicativo empacotado existente, as ativações de notificação em primeiro plano/plano de fundo e herdado ativarão o ativador COM em vez da linha de comando.
Para saber como usar essa opção, consulte Enviar uma notificação do sistema local de aplicativos C# da área de trabalho ou Enviar uma notificação do sistema local de aplicativos Win32 C++ WRL.
Opção alternativa - Sem COM / Stub CLSID
Essa é uma opção alternativa se você não puder implementar um ativador COM. No entanto, você sacrificará alguns recursos, como suporte de entrada (caixas de texto em notificações do sistema) e ativação em processo.
Visuais | Ações | Entradas | Ativa em processo |
---|---|---|---|
✔️ | ✔️ | ❌ | ❌ |
Com essa opção, se você der suporte à área de trabalho, ficará muito mais limitado nos modelos de notificação e nos tipos de ativação que pode usar, conforme mostrado abaixo.
Modelo e tipo de ativação | Empacotados | Desempacotado |
---|---|---|
ToastGeneric em primeiro plano | ✔️ | ❌ |
Plano de fundo genérico do Toast | ✔️ | ❌ |
Protocolo ToastGeneric | ✔️ | ✔️ |
Modelos legados | ✔️ | ❌ |
Para aplicativos empacotados, basta enviar notificações do sistema como um aplicativo UWP faria. Quando o usuário clicar na notificação do sistema, seu aplicativo será iniciado na linha de comando com os argumentos de inicialização especificados na notificação do sistema.
Para aplicativos não empacotados, configure a AUMID para que você possa enviar notificações do sistema e, em seguida, especifique também um CLSID no atalho. Isso pode ser qualquer GUID aleatório. Não adicione o servidor/ativador COM. Você está adicionando um CLSID COM de "stub", o que fará com que a Central de Ações persista a notificação. Observe que você pode usar apenas notificações do sistema de ativação de protocolo, pois o CLSID de stub interromperá a ativação de qualquer outra ativação de notificação do sistema. Portanto, você precisa atualizar seu aplicativo para dar suporte à ativação do protocolo e fazer com que o protocolo da notificação do sistema ative seu próprio aplicativo.
Recursos
Windows developer