我开发了一个桌面应用程序,在用户处于Metro模式时显示ToastNotifications。单击它后,它将使用户返回桌面模式,在该模式下将显示标准桌面通知。
除非Windows处于QUNS_QUIET_TIME状态,否则一切正常。桌面通知未按预期显示,但ToastNotfications仍会显示。我的客户希望在安静时间内不显示ToastNotifications。
代码调用SHQueryUserNotificationState,返回QUERY_USER_NOTIFICATION_STATE enumeration。提供的链接说明如下:
请注意,在安静时间,如果用户处于其他阻止模式之一(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是否有效的方法或强制吐司尊重安静时间的方法?
答案 0 :(得分:0)
桌面通知使用与吐司通知不同的settings。您可以找到吐司通知设置here。当用户从Windows 8设置|将通知设置为一小时时通知,该应用程序将无法设置Toast通知。在这里尝试示例“sending toast notifications from a desktop”(C ++代码或C#代码)。