C#WinForms:创建后台通知应用程序

时间:2011-11-04 11:07:51

标签: c# winforms windows-services

出于实际目的而且作为学习练习,我想创建通知应用程序以提醒我朋友的生日。我希望应用程序在后台运行,以便它可以根据用户配置的提醒检查当前日期。如果提醒已到期,则会向用户显示一个简单的窗口,允许他们暂停或关闭通知。我希望应用程序具有用户特定的通知(即,当用户B登录时,看不到用户A的通知)。

选项1 - Windows启动时启动的应用程序: 我想通过检查何时仅在应用程序启动时显示通知来保持简单。然后我会在Windows Startup文件夹中放置一个快捷方式。但是,如果PC处于睡眠状态并且每天都恢复,这可能不会起作用。

选项2 - 应用程序在后台持续运行: 然后,我考虑制作应用程序,使其最小化为系统托盘中的图标,从而不断在后台运行。然后它会定期检查何时显示通知。

选项3 - 将Windows服务与应用程序一起使用: 然后,我考虑使用Windows服务定期检查何时显示通知。显然,Windows服务无法显示UI通知,因此需要使用其他一些通知机制(例如发送电子邮件)。然后,可以使用应用程序配置服务使用的设置。

我还没有考虑哪些其他方案可以更好地运作。我目前倾向于选择2作为我的第一个实现,但之后可能会寻求更好的解决方案。

TIA

1 个答案:

答案 0 :(得分:0)

您的选项2是最佳选项,因为您的目标是区分用户及其提醒 - 您的应用程序在特定用户的上下文中运行,您已经知道需要显示哪些剩余部分。当然,你可以选择第三种选择,但这种方式确实需要更多时间来编写代码,代码本身会更复杂。我会选择第二种选择。由于您的应用程序是WinForms,对于定期检查,我建议您使用System.Windows.Forms.Timer类。

顺便说一句,在托盘通知区域显示一个图标不会使您的应用程序“在后台运行”,这只是一种方便的方式来显示您的应用程序已启动并运行。