Остановить мигание панели задач

Я знаю, что могу программно заставить элемент панели задач для определенного окна начать мигать, когда что-то изменится, но есть ли способ остановить его мигание либо программно через определенный период времени, либо, по крайней мере, есть ли сокращение клавиатуры, которое я могу дать моим пользователям как-то остановить перепрошивку?


person lomaxx    schedule 27.08.2008    source источник


Ответы (3)


Функция FlashWindowEx, управляющая миганием, принимает Структура FLASHWINFO с полем uCount для управления сколько раз мигает. Кроме того, возможное значение поля dwFlags — FLASHW_STOP, чтобы остановить мигание.

РЕДАКТИРОВАТЬ: забыли, что это вопрос с тегом С#... поэтому P/Invoke goodness найден здесь.

person imaginaryboy    schedule 27.08.2008

Вместо мигания тасбара вы можете использовать NotifyIcon. Это позволит вам поместить что-то в системный трей (еще что-то, что многие считают злом из-за распространения приложений, которые делают это). Затем вы можете вывести всплывающую подсказку с любым изменением, которое фактически описывает само изменение.

Для использования: (1) Перетащите значок NotifyIcon на форму или создайте в своем приложении NotifyIcon notify = new NotifyIcon(); (2) Задайте для свойства значка требуемое изображение (3) Управляйте видимостью на панели задач с помощью свойства Visible (4) Вызовите ShowBalloonText для отображения всплывающего текста (ограничено 64 символами)

В любом случае, вы должны добавить в программу опцию, позволяющую конечному пользователю включать и выключать эту функцию в зависимости от того, что они думают обо всем этом. Мне лично нравится значок уведомления, потому что текст в виде шара может говорить что-то вроде «Сервер вышел из строя».

person Marcus Erickson    schedule 17.11.2008

@thomas -- Удивительно, что собственное руководство по взаимодействию с пользователем Windows Vista от Microsoft соответствует ты ...

В то время как мигание кнопки панели задач в фоновом режиме лучше, чем если бы оно автоматически поднималось вверх и крало фокус ввода, мигающие кнопки панели задач по-прежнему очень навязчивы. Пользователям трудно сосредоточиться, когда мигает кнопка на панели задач, поэтому следует исходить из того, что пользователи немедленно прекратят свои действия, чтобы остановить мигание. Следовательно, зарезервируйте мигание панели задач только для ситуаций, когда требуется немедленное внимание.

Конечно, кто знает, кто на самом деле следует этим рекомендациям… или кто их даже читает. :)

person imaginaryboy    schedule 27.08.2008
comment
Microsoft больше не следует своим собственным рекомендациям, поэтому ожидать этого от других разработчиков программного обеспечения, вероятно, невозможно. Что касается OP, мне лично не нравятся мигающие значки на панели задач, мигающий фокус окна, приложения, которые принудительно поднимают свое окно наверх (часто, когда я печатаю в другом приложении, и это происходит, мой ввод активирует любой элемент управления, имеющий фокус, и закрывается диалоговое окно, поэтому я в конечном итоге пропускаю любое уведомление) или уведомления в трее. Он должен определяться в каждом конкретном случае для типа уведомления. Я показываю значок на панели инструментов/панели состояния приложения с всплывающей подсказкой. - person deegee; 30.10.2013