ユーザーがメトロ モードのときに ToastNotifications を表示するデスクトップ アプリケーションを開発しました。クリックすると、標準のデスクトップ通知が表示されるデスクトップ モードに戻ります。
Windows が QUNS_QUIET_TIME にある場合を除いて、これはすべて正常に機能します。デスクトップ通知は期待どおりに表示されませんが、ToastNotfications は引き続き表示されます。私のクライアントは、ToastNotifications がクワイエット タイム中に表示されないようにしたいと考えています。
このコードは、 QUERY_USER_NOTIFICATION_STATE 列挙を返す SHQueryUserNotificationState を呼び出します。提供されたリンクには次のように記載されています。
ユーザーが他のブロックされたモード (QUNS_NOT_PRESENT、QUNS_BUSY、QUNS_PRESENTATION_MODE、または QUNS_RUNNING_D3D_FULL_SCREEN) のいずれかである場合、待機時間中に SHQueryUserNotificationState はその値のみを返し、QUNS_QUIET_TIME を報告しないことに注意してください。
これが私が経験していることです。SHQueryUserNotificationState への呼び出しは、QUNS_QUIET_TIME ではなく、QUNS_APP (Windows ストア アプリが実行中) を返します。
QUNS_QUIET_TIME が有効かどうかを判断する別の方法、またはトーストに静かな時間を強制する方法を知っている人はいますか?