2010-12-02 7 views
0

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

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

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

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

Спасибо!

+0

Что не так с MessageBox.Show («Просыпайтесь !!! Ваши данные готовы для вас, наконец !!!!»)? – 2010-12-02 15:13:39

+1

Вы должны сделать их http://wuphf.com/ (из офиса) – kemiller2002 2010-12-02 15:14:51

ответ

3

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

  • Animated или измененное системный трей значок
  • "Тостер" всплывающее окно из системного лотка (например, Outlook, мессенджер или некоторые приложения AV-приложений)
  • Мигающий сигнал тревоги на панели задач
  • Отправить электронное письмо
  • Воспроизведения звука/звуковой сигнал
  • окну сообщений
  • ли индикатор в строке состояния в нижней части приложения

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

1

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

+0

простой и эффективный – 2010-12-02 15:15:00

1

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

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

0

Вам не нужны динамики, чтобы сделать console beep ...

Console.Beep();

2

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

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

Notification sample

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

0

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