Windows Toast 通知不适用于 MS CPP 示例代码



我想将 Toast 通知集成到我现有的基于 CPP/COM 的桌面应用程序中。为了添加这一点,我遵循了 https://learn.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/send-local-toast-desktop-cpp-wrl(在product.wxs中添加了GUID等并安装了它(中给出的分步指南。 但是当我的代码条件调用 notifier->Show(( 时,通知不会发布。Microsoft在 https://github.com/WindowsNotifications/desktop-toasts 上发布了一些示例项目。但是来自此 git 链接的 CPP/COM 项目也无法发布 Toast 通知。如果我使用此 git 中的 c# 示例,则会发布 Toast 通知。 除了 MS 链接(或 Git 示例中存在(中提到的步骤之外,基于 CPP/COM 的应用程序是否需要一些更改才能工作?有没有更好的解决方案将 Toast 通知集成到基于 COM 的桌面应用程序中?

谢谢 奥姆卡尔

但是来自此 git 链接的 CPP/COM 项目也无法发布 Toast 通知。

通过检查官方样本,其中有一个错误。在DesktopToastsSample.cpp文件中,它在 RegisterAumidAndComServer 方法中注册的 AUMID 是"WindowsNotifications.DesktopToastsCpp",但是,在 SetupProject 的Product.wxs文件中,它输入的AUMID"WindowsNotifications.DesktopToastsCppWrl"这两个 AUMID 不匹配,因此无法显示通知。在这种情况下,您可以将 Product.wxs 文件中的 AUMID 从示例修改为"WindowsNotifications.DesktopToastsCpp"。例如:

产品.wxs:

<ShortcutProperty Key="System.AppUserModel.ID" Value="WindowsNotifications.DesktopToastsCpp"/>

然后再次生成安装项目,并从 bin/调试文件夹安装生成的 MSI。之后,从"开始"菜单启动桌面Toasts应用程序,将显示通知。

最新更新