简介
微软的windows服务,以前以NT服务著称。它可以使你在自己的系统会话的基础上,创建一个长时间运行的可执行应用程序。这些服务可以在开机的时候自动启动,可以中止、重启,并且不现实任何用户界面。在你使用服务器或者你需要在一个机器上长期运行,且不能干扰其他用户使用该电脑的时候,服务的特性,就使它成为了非常理想的一种技术。
一个Windows服务可以由微软的VS或者Embarcadero Delphi等开发工具来创建。为了让程序真正成为windows系统的服务,就需要程序可以被服务控制管理器启动、停止、中止。服务控制管理器是一个启动和停止服务的一个windows操作系统的组件。
代码
     打开 Visual Studio
     打开文件->新建->项目
     选择Windows 服务
     右键Service1.cs 在下拉菜单中选择属性
     在属性窗体中单击,添加安装程序:
 
 在属性窗体中单击,添加安装程序:

 
右键serviceInstaller1,选择属性
改变DisplayName, ServiceName为SeraMailService
启动类型为自动启动

 
右键serviceProcessInstaller1 ,之后选择属性
更改用户为LocalSystem
右键Service1.cs设计文件,选择查看代码

 
在OnStart方法中,输入下列代码:
	  
		| 代码如下 | 复制代码 | 
	  
		| public void GetMail(object sender, System.Timers.ElapsedEventArgs args){
 NetworkCredential cred = new NetworkCredential("[email protected]", "Password");
 MailMessage msg = new MailMessage();
 msg.To.Add("[email protected]");
 msg.Subject = "Welcome JUBAYER";
 
 msg.Body = "You Have Successfully Entered to Sera's World!!!";
 msg.From = new MailAddress("[email protected]"); // Your Email Id
 SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
 SmtpClient client1 = new SmtpClient("smtp.mail.yahoo.com", 465);
 client.Credentials = cred;
 client.EnableSsl = true;
 client.Send(msg);
 }
 | 
	
为了使这个方法一直运行,我们需要添加时距。
在onload 方法之前,插入下列代码:
	  
		| 代码如下 | 复制代码 | 
	  
		| System.Timers.Timer createOrderTimer; | 
	
在onStart 方法中,输入下列代码:
	  
		| 代码如下 | 复制代码 | 
	  
		| createOrderTimer = new System.Timers.Timer();createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetMail);
 createOrderTimer.Interval = 180000;//Set Three minutes intervals
 createOrderTimer.Enabled = true;
 createOrderTimer.AutoReset = true;
 createOrderTimer.Start();
 | 
	
全部代码如下:
	  
		| 代码如下 | 复制代码 | 
	  
		| System.Timers.Timer createOrderTimer;
 public Service1()
 {
 InitializeComponent();
 }
 
 protected override void OnStart(string[] args)
 {
 createOrderTimer = new System.Timers.Timer();
 createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetMail);
 createOrderTimer.Interval = 500;
 createOrderTimer.Enabled = true;
 createOrderTimer.AutoReset = true;
 createOrderTimer.Start();
 }
 
 public void GetMail(object sender, System.Timers.ElapsedEventArgs args)
 {
 NetworkCredential cred = new NetworkCredential("[email protected]", "Password");
 MailMessage msg = new MailMessage();
 msg.To.Add("[email protected]");
 msg.Subject = "Welcome JUBAYER";
 
 msg.Body = "You Have Successfully Entered to Sera's World!!!";
 msg.From = new MailAddress("[email protected]"); // Your Email Id
 SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
 SmtpClient client1 = new SmtpClient("smtp.mail.yahoo.com", 465);
 client.Credentials = cred;
 client.EnableSsl = true;
 client.Send(msg);
 }
 | 
	
现在用Ctrl+Shift+B编译该服务。
在命令行模式下,输入代码,来安装InstallUtil.exe。
	  
		| 代码如下 | 复制代码 | 
	  
		| C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe | 
	
安装服务的指令为:
	  
		| 代码如下 | 复制代码 | 
	  
		| C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727>InstallUtil.exe "C:/Documents and
 Settings/Administrator/My Documents/Visual Studio 2008/Projects/SeraMailService/
 SeraMailService/bin/Debug/SeraMailService.exe"
 | 
	
在运行的窗体中输入services.msc命令,来查看操作系统的服务。右键所安装的服务名称,启动服务即可。
	  
		| 代码如下 | 复制代码 | 
	  
		| C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727>InstallUtil.exe /u "C:/Documents and Settings/Administrator/My Documents/Visual Studio 2008/
 Projects/SeraMailService/SeraMailService/bin/Debug/SeraMailService.exe"
 |