1

我开发了一个桌面应用程序,它在用户处于 Metro 模式时显示 ToastNotifications。单击后,它将使用户回到显示标准桌面通知的桌面模式。

这一切都很好,除非 Windows 处于 QUNS_QUIET_TIME。桌面通知未按预期显示,但 ToastNotfications 仍会显示。我的客户希望在安静时间不显示 ToastNotifications。

代码调用 SHQueryUserNotificationState 返回一个QUERY_USER_NOTIFICATION_STATE 枚举。提供的链接说明如下:

请注意,在安静时间期间,如果用户处于其他阻塞模式之一(QUNS_NOT_PRESENT、QUNS_BUSY、QUNS_PRESENTATION_MODE 或 QUNS_RUNNING_D3D_FULL_SCREEN),则 SHQueryUserNotificationState 仅返回该值,并且不报告 QUNS_QUIET_TIME。

这就是我正在经历的。对 SHQueryUserNotificationState 的调用返回的是 QUNS_APP(Windows 应用商店应用程序正在运行。)而不是 QUNS_QUIET_TIME。

有谁知道确定 QUNS_QUIET_TIME 是否有效的另一种方法或一种强制敬酒尊重安静时间的方法?

4

1 回答 1

0

桌面通知使用与toast 通知不同的设置。您可以在此处找到 toast 通知设置。当用户在 Windows 8 设置中将通知设置为一小时时 | 通知,应用程序将无法设置 toast 通知。在此处尝试“从桌面发送 toast 通知”示例(C++ 代码或 C# 代码)。

于 2013-02-22T04:47:03.970 回答