是否可以从 c++ Windows 服务发送 Windows Toast 通知?

Is it possible to send Windows Toast notifications from a c++ Windows service?

我正在尝试学习如何从我的程序中显示 Toast 通知,该程序是注册为 windows 服务的本机 c++ 控制台应用程序。

我了解到 Toast 是 windows 运行时 UI 组件的一部分;那么这是否意味着我必须为我的产品开发一个 GUI 组件才能发送 Toast?

是的,也许可以检查这个 link Here 某些 WinRT 类 可以从桌面应用程序使用,包括 Windows.UI 命名空间的部分。 toast 通知 API 就是这样一个例子 - Windows 应用商店应用和桌面应用都可以使用它们

您应该检查 this。纯非托管 C++ 和 COM。

我开发了 WinToast,一个用 C++ 编写的库,可以轻松集成 Windows Toast Notification。我用它在不同的项目中集成 Toast 通知,特别是 Qt Framework。

本机 Toast Notification 需要 Com Fundamentals 的某些功能,这些功能仅在 Windows 的现代版本中可用(支持的最低客户端:Windows 8)。

这就是库动态加载所有必需库的原因。使用 WinToast 使您的应用程序与 Windows 的旧版本兼容。有一个附加示例解释了如何在存储库中使用它。

要祝酒词,只需创建模板和您的自定义处理程序并启动它:

WinToastHandlerExample* handler = new WinToastHandlerExample;
WinToastTemplate templ  = WinToastTemplate(WinToastTemplate::ImageWithTwoLines);
templ.setImagePath(L"imagepath");
templ.setTextField(L"firstline", 0);
templ.setTextField(L"secondline", 1);

if (!WinToast::instance()->showToast(templ, handler)) {
   std::wcout << L"Could not launch your toast notification!";
}