Вопреки некоторым предложениям, высказанным другими ответами, вы, вероятно, не можете делать то, что хотите, с помощью службы Windows. Он не может отображать ожидаемое «уведомление», потому что службы не могут отображать какой-либо пользовательский интерфейс.
Подходящим решением является создание обычного приложения, которое работает в фоновом режиме, не показывая никаких окон. Вы не можете сделать это с консольным приложением (ну, вы можете , но давайте не будем слишком усложнять), потому что каждый раз, когда вы его запускаете, будет отображаться окно консоли. Но если вы создадите стандартное приложение Windows (приложение Windows Forms или WPF), то просто не создавайте окно, все будет хорошо.
Возможно, вы захотите создать и поместить значок в область уведомлений панели задач, которая будет обрабатывать отображение уведомления по прибытии электронной почты. Если вы создаете приложение WinForms, это можно легко сделать с помощью компонента NotifyIcon
.
Что-то вроде (предупреждение, написанное без помощи компилятора!):
static class Program
{
[STAThread]
static void Main()
{
// Standard infrastructure code
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Create a context menu and add item(s) to it
ContextMenu mnu = new ContextMenu();
MenuItem mnuExit = new MenuItem("E&xit");
mnu.MenuItems.Add(mnuExit);
mnuExit.Click += mnuExit_Click);
// Create the NotifyIcon
NotifyIcon ni = new NotifyIcon();
ni.Icon = new Icon(GetType(), "icon.ico");
ni.Text = "Email Notifier";
ni.ContextMenu = mnu;
ni.Visible = true;
// Run the application
Application.Run();
// Before exiting, remove the NotifyIcon from the taskbar
ni.Visible = false;
}
private static void mnuExit_Click(object Sender, EventArgs e)
{
Application.Exit();
}
}