c++ - 从桌面应用程序使用 Windows 8 toast 通知

标签 c++ winapi windows-8 notifications toast

我开发了一个桌面应用程序,它是一个简单的 Windows .exe。

它在 Windows 8 上运行良好。

我现在尝试使用“toast notification”向用户显示一些警报。

所以我使用 Microsoft 样本进行训练,可在此处获取:http://code.msdn.microsoft.com/windowsdesktop/sending-toast-notifications-71e230a2/

它工作正常,但我必须为我的应用程序创建一个快捷方式才能使用 toast 通知。

我试图删除快捷方式创建,但它不起作用。我明白,因为对于桌面应用程序,快捷方式是 toast 通知的先决条件,您可以在 Microsoft 网站上阅读:http://msdn.microsoft.com/en-us/library/windows/apps/hh802768.aspx

我的问题很简单。如果用户决定删除快捷方式(这是他的个人资料文件夹中的 .lnk),如果没有此快捷方式,我的 toast 通知如何工作?

如果快捷方式没有创建,我不想每次都在运行时创建它,因为用户决定删除它,并且每次都创建它是不正确的。

那么,有什么方法可以在不使用快捷方式的情况下从桌面应用程序使用 toast 通知吗?

最佳答案

documentation你引用的似乎很清楚:

A shortcut to your app, with a System.AppUserModel.ID, must be installed to the Start screen. Note, however, that it does not need to be pinned to the Start screen. For more information, see How to enable desktop toast notifications through an AppUserModelID.

请注意,“固定”和“已安装”之间存在区别,如果您可以在不固定的情况下进行安装(不确定是否可以),用户将不太可能找到并删除它。

也就是说,永远无法保证快捷方式就在那里。也许您的应用程序在启动时(或任何时候)可以检测到快捷方式消失并“温和地”通知用户他们的应用程序体验将不尽如人意,然后提供恢复快捷方式(您将以编程方式执行)。

请记住,用户始终可以按应用程序或系统范围关闭应用程序的通知,因此删除快捷方式只是最终用户可能看不到您的通知的方式之一。

关于c++ - 从桌面应用程序使用 Windows 8 toast 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13864353/

相关文章:

C++ 添加用于序列化 vector 对的自定义 XML 标记

c++ - 模板元编程的尾递归性能

c++ - Win32 线程生产者更新消费者线程

windows-8 - 限制 Windows 8 应用程序以纵向模式查看(WinRT)

c++ - 我可以有多个 GL_ARRAY_BUFFER 缓冲区吗?

c++ - 观察数据变化的不同方式

c++ - Winsock 的 connect() 函数超时

c++ - 如何调用 DeviceIoControl 来检索它需要的内存量?

windows-8 - 有没有办法在 Windows 8 metro 应用程序中获得推送滚动功能?

c++ - 如何在 Wifi 连接期间以编程方式检测错误的密码输入?