Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Упакованные и распакованные приложения Win32 могут отправлять интерактивные тост-уведомления так же, как это могут делать приложения UWP. Это включает упакованные приложения (см. Создание нового проекта для упакованного классического приложения WinUI 3); упакованные приложения с внешним расположением (см. Предоставление идентификационного пакета посредством упаковки с внешним расположением); и неупакованные приложения (см. Создание нового проекта для неупакованного классического приложения WinUI 3).
Однако для распаковки приложения Win32 есть несколько специальных шагов. Это связано с различными схемами активации и отсутствием идентификации пакета во время выполнения.
В этой теме мы перечисляем возможности, которые у вас есть для отправки всплывающего уведомления в Windows 10. Каждый вариант полностью поддерживает...
- Продолжение в Центре действий
- Возможность активации как из всплывающего окна, так и внутри Центра уведомлений
- Возможность активации, когда EXE не запущен
Все параметры
В приведенной ниже таблице демонстрируются ваши варианты поддержки уведомлений в настольном приложении и соответствующие поддерживаемые функции. Вы можете использовать таблицу, чтобы выбрать оптимальный вариант для вашего сценария.
| Option | Visuals | Actions | Inputs | Активация внутри процесса |
|---|---|---|---|---|
| Активатор COM | Supported | Supported | Supported | Supported |
| Нет COM / Stub CLSID | Supported | Supported | Не поддерживается | Не поддерживается |
Предпочтительный вариант — активатор COM
Это предпочтительный вариант, который работает для классических приложений и поддерживает все функции уведомлений. Не бойтесь «COM активатор»; у нас есть библиотека для приложений C# и C++ , что делает это очень простым, даже если вы еще не написали COM-сервер.
| Visuals | Actions | Inputs | Активация в процессе |
|---|---|---|---|
| Supported | Supported | Supported | Supported |
С помощью параметра активации COM в приложении можно использовать следующие шаблоны уведомлений и типы активации.
| Тип шаблона и активации | Packaged | Unpackaged |
|---|---|---|
| ToastGeneric Foreground | Supported | Supported |
| Фон ToastGeneric | Supported | Supported |
| ToastGeneric Protocol | Supported | Supported |
| Устаревшие шаблоны | Supported | Не поддерживается |
Note
Если вы добавите активатор COM в существующее упакованное приложение, то Типы уведомлений Foreground/Background и Legacy будут активировать ваш активатор COM вместо командной строки.
Сведения об использовании этого параметра см. в статье Отправка локального всплывающего уведомления с рабочего стола из приложений C# или Отправка локального всплывающего уведомления из приложений WRL Win32 C++.
Альтернативный вариант — без COM / Stub CLSID
Это альтернативный вариант, если вы не можете реализовать активатор COM. Однако вы будете жертвовать несколькими функциями, такими как поддержка входных данных (текстовые поля на уведомлениях) и внутрипроцессная активация.
| Visuals | Actions | Inputs | Активация внутрипроцессного процесса |
|---|---|---|---|
| Supported | Supported | Не поддерживается | Не поддерживается |
Если вы поддерживаете рабочий стол, то вы ограничены в шаблонах уведомлений и типах активации, которые можно использовать, как показано ниже.
| Тип шаблона и активации | Packaged | Unpackaged |
|---|---|---|
| ToastGeneric Передний план | Supported | Не поддерживается |
| Фон toastGeneric | Supported | Не поддерживается |
| ToastGeneric Protocol | Supported | Supported |
| Устаревшие шаблоны | Supported | Не поддерживается |
Для упакованных приложений просто отправляйте всплывающие уведомления, как это делает приложение UWP. Когда пользователь щелкает по вашему уведомлению, ваше приложение будет запущено через командную строку с аргументами запуска, которые вы указали в уведомлении.
Для распакованных приложений настройте AUMID, чтобы можно было отправлять тосты, и затем укажите CLSID в ярлыке. Это может быть любой случайный глобальный уникальный идентификатор (GUID). Не добавляйте COM-сервер или активатор. Вы добавляете «заглушку» для COM CLSID, что приведет к тому, что Центр уведомлений сохранит уведомление. Обратите внимание, что вы можете использовать только всплывающие уведомления об активации протокола, так как заглушка CLSID прерывает активацию любых других всплывающих активаций. Вам нужно обновить приложение для поддержки активации протокола и чтобы протокол всплывающего уведомления активировал ваше собственное приложение.
Resources
Windows developer