2011-11-04 33 views
0

爲了實踐目的,但也作爲學習練習,我想創建通知應用程序來提醒我朋友的生日。我希望應用程序在後臺運行,以便它可以根據用戶配置的提醒檢查當前日期。如果提醒是到期的,那麼用戶將顯示一個簡單的窗口,以允許他們推遲或解除通知。我希望應用程序具有用戶特定的通知(即用戶B登錄時看不到用戶A的通知)。C#WinForms:創建背景通知應用程序

選項1 - 在Windows啓動時啓動的應用程序: 我想通過檢查何時僅在應用程序啓動時顯示通知來簡化它。然後,我會在Windows啓動文件夾中放入一個快捷方式。但是,如果電腦每天都進入睡眠狀態並恢復,這可能不起作用。

選項2 - 應用程序不斷在後臺運行: 然後我想到了使應用程序最小化到系統托盤中的圖標,因此會不斷在後臺運行。然後它會定期檢查何時顯示通知。

選項3 - 在應用程序中使用Windows Service: 然後,我想了解如何使用Windows服務來定期檢查何時顯示通知。顯然,Windows服務無法顯示UI通知,因此需要使用其他一些通知機制(例如發送電子郵件)。然後可以使用應用程序來配置服務使用的設置。

有沒有其他的選擇,我沒有考慮哪個更好。我目前傾向於選擇2作爲我的第一次實施,但是可能會在之後轉向更好的解決方案。

TIA

+1

我會選擇選項2以及 – Alex

+0

您需要1 *和* 2。它必須先啓動。在啓動時不要顯示,用戶還有其他計劃。 –

回答

0

你選擇2是最優的,因爲你的目的是不同的用戶和他們的提醒 - 你的應用程序運行在特定用戶的上下文中,你已經知道哪些餘需要顯示。當然,你可以選擇第三種方法,但這種方式確實需要更多時間進行編碼,代碼本身會更復雜。我會去第二個選擇。由於您的應用程序是WinForms,對於定期檢查,我建議您使用System.Windows.Forms.Timer類。

順便說一句,顯示在任務欄通知區域的圖標不會使您的應用程序「在後臺運行」,它只是表明你的應用程序的簡便方法是啓動和運行。