Как я могу предупредить пользователя после завершения длительного процесса? - PullRequest
0 голосов
/ 02 декабря 2010

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

System.Media.SystemSounds.Exclamation.Play();

Но у большинства пользователей в офисе нет ораторов, поэтому я не думаю, что это будет очень эффективно.

Какие еще методы я мог бы использовать, чтобы сказать пользователю: «Проснись !!! Ваши данные наконец готовы для вас !!!!»

Спасибо!

Ответы [ 6 ]

3 голосов
/ 02 декабря 2010

Некоторые идеи:

  • Анимированный или измененный значок на панели задач
  • Всплывающее окно «Тостер» из области уведомлений (например, Outlook, Messenger или некоторые другие приложения AV)
  • Мигающее предупреждение на панели задач
  • Отправить по электронной почте
  • Воспроизведение звукового / звукового оповещения
  • Окно сообщения
  • Наличие индикатора в строке состояния внизу вашего приложения.

Из них мне больше нравится значок в системном трее + ​​тостер. Мигание оповещения на панели задач слишком требовательно, электронная почта имеет слишком большую задержку и требует слишком много настроек, звуковые оповещения имеют проблемы, о которых вы упоминали в вопросе, окно сообщения блокирует выполнение его цепочки, а индикатор строки состояния слишком тонкий.

2 голосов
/ 02 декабря 2010

Это звучит как идеальный вариант использования для уведомления в панели задач Область уведомлений .

Это имеет преимущество в том, что предупреждает пользователя немедленно, не полагаясь на вещи.как звук, который может или не может быть доступен на компьютере пользователя и без инвазивности окна сообщения.

Notification sample

... за исключением того, что вы можете сказать «Процесс завершен» вместо этого:-)

1 голос
/ 02 декабря 2010

Как насчет мигания формы на панели задач подобно тому, как большинство программ обмена мгновенными сообщениями мигают при получении нового сообщения. Вам понадобится P / Invoke, чтобы получить эту функциональность, но на самом деле это очень просто:

http://pietschsoft.com/post/2009/01/26/CSharp-Flash-Window-in-Taskbar-via-Win32-FlashWindowEx.aspx

1 голос
/ 02 декабря 2010

Откройте окно сообщения .. если приложение свернуто, оно будет мигать на панели запуска.

0 голосов
/ 02 декабря 2010

Вы можете разрешить пользователю настраивать способ получения уведомлений, если у вас есть разработчик.время.

0 голосов
/ 02 декабря 2010

Вам не нужны динамики, чтобы издавать консольный сигнал ...

Console.Beep();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...