Почему задержка срабатывания затвора при блокировке экрана?


2

Приложение, которое я написал, отображает подсказку воздушного шара (с использованием NotifyIcon.ShowBalloonTip()), когда происходит определенное событие. Это также может случиться, когда система заблокирована.

В этом случае наконечник баллона не отображает сразу после его разблокировки или нет - оба случая будут точными и имеют смысл. Однако он отображается через некоторое время - иногда более полутора часов.

Это поведение очень раздражает, и я хотел бы знать, есть ли способ предотвратить его, кроме проверки того, заблокирован ли экран перед показом balloontip.

  0

Это новый. Это должно быть экологическим. Попробуйте на другой машине. Это относится к superuser.com кстати. 20 авг. 112011-08-20 09:30:31

  0

Как это что-то для superuser.com?У меня эта проблема особенно с balloontips, созданной моим приложением. Таким образом, это может быть связано с методом, который я использую. Кроме того, решение, скорее всего, связано с программированием ... 20 авг. 112011-08-20 09:31:23

  0

Потому что это экологический. Если вы считаете, что это связано с тем, как вы показываете советы, вам следует опубликовать фрагмент кода, чтобы помочь нам воспроизвести поведение. Это сделало бы вопрос программирования. 20 авг. 112011-08-20 09:41:07

+1

Я упомянул функцию. Так как это чрезвычайно просто, нет необходимости публиковать отрезанный, который ничего не делает, кроме вызова этой функции ... 20 авг. 112011-08-20 09:50:24

1

Уведомления панели задач (это официальная терминология) связаны с ними сложной логикой.

  1. Уведомления отображаются либо сразу, либо после выхода из определенных состояний, например, когда компьютер заблокирован (или играть в полноэкранном режиме игры):

    http://blogs.msdn.com/b/oldnewthing/archive/2005/01/10/349894.aspx

  2. в Vista и позже, только отображается в течение 9 секунд, и это не регулируется:

    http://blogs.msdn.com/b/oldnewthing/archive/2011/05/18/10165605.aspx

  3. Notification воздушные шары не появляются вообще в течение первого часа пользователь вошел в систему впервые:

    http://msdn.microsoft.com/en-us/library/windows/desktop/ee330740(v=vs.85).aspx

Самое главное, Windows не гарантирует, что пользователь увидит их. В Windows UX Guidelines, они заявляют:

Не думайте, что пользователи будут видеть ваши уведомления. Пользователи не видят их:

  • Они погружены в свою работу.
  • Они не обращают внимания.
  • Они подальше от своего компьютера.
  • Они работают с полноэкранным приложением.
  • Администратор отключил все уведомления для своего компьютера.

Он также утверждает, что пользователь не может видеть сообщения во время либо, в этом случае вы должны unqueue ваших сообщений, когда они больше не актуальны. Вы можете сделать это, позвонив ShowBalloonTip(0, String.Empty, String.Empty, ToolTipIcon.None). Я думаю, что делать это - ваш лучший выбор, чтобы предотвратить появление неактуальных воздушных шаров.