C # WinForms: создание приложения для фонового уведомления - PullRequest
0 голосов
/ 04 ноября 2011

В практических целях, а также в качестве учебного упражнения я хочу создать приложение для уведомлений, которое будет напоминать мне о днях рождения друга. Я хотел бы, чтобы приложение работало в фоновом режиме, чтобы оно могло проверять текущую дату по настроенным пользователем напоминаниям. Если требуется напоминание, то пользователю отображается простое окно, которое позволит ему отложить или отклонить уведомление. Я хочу, чтобы приложение получало пользовательские уведомления (т.е. уведомления пользователя A не отображаются при входе пользователя B).

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

Вариант 2 - Приложение постоянно работает в фоновом режиме: Затем я подумал о создании приложения, чтобы оно минимизировалось до иконки в системном трее и, таким образом, постоянно работало в фоновом режиме. Затем он будет периодически проверять, когда отображать уведомления.

Вариант 3 - Использование службы Windows с приложением: Затем я подумал об использовании службы Windows для периодических проверок времени отображения уведомлений. Очевидно, что служба Windows не может отображать уведомления пользовательского интерфейса, поэтому ей нужно будет использовать какой-то другой механизм для уведомления (например, отправка электронной почты). Затем приложение можно использовать для настройки параметров, которые использует служба.

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

1011 * ТИА *

1 Ответ

0 голосов
/ 04 ноября 2011

Ваш вариант 2 является оптимальным, так как вы нацелены на отдельных пользователей и их напоминания - ваше приложение работает в контексте определенного пользователя, вы уже знаете, какие остатки нужно показать. Конечно, вы могли бы пойти на третий вариант, но этот путь действительно требует больше времени для написания кода, а сам код будет более сложным. Я бы пошел на второй вариант. Поскольку ваши приложения - это WinForms, для периодических проверок я бы рекомендовал вам использовать класс System.Windows.Forms.Timer.

Кстати, отображение значка в области уведомлений на панели задач не делает ваше приложение «запущенным в фоновом режиме», это просто удобный способ показать, что ваше приложение работает и работает.

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