Windows服务组件 定时执行代码

首先新建Windows Service项目
简单的代码如下
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Diagnostics;
 6 using System.Linq;
 7 using System.ServiceProcess;
 8 using System.Text;
 9 using System.IO;
10 using System.Threading;
11 
12 namespace WindowsService1
13 {
14     public partial class Service1 : ServiceBase
15     {
16         public Service1()
17         {
18             InitializeComponent();
19         }
20 
21         protected override void OnStart(string[] args)
22         {
23             EventLog.WriteEntry("我的服务启动");
24             writestr("服务启动");
25             System.Timers.Timer t = new System.Timers.Timer();
26             t.Interval = 1000;
27             t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed);
28             t.AutoReset = true;//设置是执行一次(false),一直执行(true)
29             t.Enabled = true;//是否执行t.Elapsed 的事件
30         }
31 
32         void t_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
33         {
34             int intHour = e.SignalTime.Hour;
35             int intMinute = e.SignalTime.Minute;
36             int intSecond = e.SignalTime.Second;
37             //if (intHour == 13 && intMinute == 30 && intSecond == 00)//定时设置,判断时分秒
38             //{
39                 try
40                 {
41                     System.Timers.Timer tt = (System.Timers.Timer)sender;
42                     tt.Enabled = false;
43                     //我的方法
44                     SetInnPoint();
45                     tt.Enabled = true;
46                 }
47                 catch (Exception ep)
48                 {
49                     writestr(ep.Message);
50                 }
51             //}
52         }
53         public void SetInnPoint()
54         {
55             try
56             {
57                 writestr("服务运行");
58                 Thread.Sleep(10000);
59             }
60             catch (Exception e)
61             {
62                 writestr(e.Message);
63             }
64         }
65 
66         public void writestr(string readme)
67         {
68             StreamWriter sw = new StreamWriter(@"d:/log.txt", true);
69             sw.Write("/r/n事件"+readme+"/r/n操作时间"+System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
70             sw.Close();
71         }
72 
73         protected override void OnStop()
74         {
75             writestr("服务运行");
76             EventLog.WriteEntry("我的服务终止");
77         }
78     }
79 }
View Code

安装方法如下

注册启动服务:

Windows服务器注册停止 
打开CMD窗口--开始--运行--输入CMD,回车 
注册服务命令 
cd C:WINDOWSMicrosoft.NETFrameworkv2.0.50727 
InstallUtil.exe D:HardWareServerService.exe (HardWareServerService为工程的名字)
net start ComputerService   (ComputerService是服务的名字)

重新注册服务 
cd C:WINDOWSMicrosoft.NETFrameworkv2.0.50727 
InstallUtil.exe /u d:HardWareServerService.exe 
从您的C# 解决方案下拷贝HardWareServerService.exe文件到D盘HardWareServerService.exe 
InstallUtil.exe D:HardWareServerService.exe 
net start ComputerService 

卸载服务

sc delete ComputerService



其中D:HardWareServerService.exe可以修改成"您当前的解决方案目录项目名称inDebugHardWareServerService.exe" 

启动刚注册服务: 显示桌面-在桌面上右击“我的电脑”,选择“管理”就可以打计算机管理控制台,选择“服务和应用程序”里面的“服务”,在右侧的服务列表中找到刚注册的 ComputerService服务(默认状态为停止),选择该服务右击启动所选择的ComputerService服务就完成了所有的操作,以后每次开 机后就自动启动运行该服务。

 

原文地址:https://www.cnblogs.com/luyiwei/p/3617237.html