博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 创建系统服务并定时执行【转载】
阅读量:6333 次
发布时间:2019-06-22

本文共 3903 字,大约阅读时间需要 13 分钟。

【转载】

C# 创建系统服务并定时执行

1.新建项目 --》 Windows 服务

2.Service1.cs代码

using System;   using System.Collections.Generic;   using System.ComponentModel;   using System.Data;   using System.Diagnostics;   using System.ServiceProcess;   using System.IO;   using System.Text;   using System.Timers;   using System.Data.SqlClient;   using System.Threading;     namespace InnPoint   {       public partial class Service : ServiceBase       {           public Service()           {               InitializeComponent();           }             protected override void OnStart(string[] args)           {               EventLog.WriteEntry("我的服务启动");//在系统事件查看器里的应用程序事件里来源的描述               writestr("服务启动");//自定义文本日志               System.Timers.Timer t = new System.Timers.Timer();               t.Interval = 1000;               t.Elapsed += new System.Timers.ElapsedEventHandler(ChkSrv);//到达时间的时候执行事件;                t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);                t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;            }             ///            /// 定时检查,并执行方法           ///            ///            ///            public void ChkSrv(object source, System.Timers.ElapsedEventArgs e)           {               int intHour = e.SignalTime.Hour;               int intMinute = e.SignalTime.Minute;               int intSecond = e.SignalTime.Second;                             if (intHour == 13 && intMinute == 30 && intSecond == 00) ///定时设置,判断分时秒               {                   try                  {                       System.Timers.Timer tt = (System.Timers.Timer)source;                       tt.Enabled = false;                       SetInnPoint();                       tt.Enabled = true;                   }                   catch (Exception err)                   {                       writestr(err.Message);                   }               }           }             //我的方法           public void SetInnPoint()           {               try              {                   writestr("服务运行");                   //这里执行你的东西                   Thread.Sleep(10000);               }               catch (Exception err)               {                   writestr(err.Message);               }           }             ///在指定时间过后执行指定的表达式           ///           ///事件之间经过的时间(以毫秒为单位)           ///要执行的表达式           public static void SetTimeout(double interval, Action action)           {               System.Timers.Timer timer = new System.Timers.Timer(interval);               timer.Elapsed += delegate(object sender, System.Timers.ElapsedEventArgs e)               {                   timer.Enabled = false;                   action();               };               timer.Enabled = true;           }                 public void writestr(string readme)           {               //debug==================================================               //StreamWriter dout = new StreamWriter(@"c:\" + System.DateTime.Now.ToString("yyyMMddHHmmss") + ".txt");               StreamWriter dout = new StreamWriter(@"c:\" + "WServ_InnPointLog.txt", true);               dout.Write("\r\n事件:" + readme + "\r\n操作时间:" + System.DateTime.Now.ToString("yyy-MM-dd HH:mm:ss"));               //debug==================================================               dout.Close();           }             protected override void OnStop()           {               writestr("服务停止");               EventLog.WriteEntry("我的服务停止");           }       }   }

 

3.在Service1.cs设计页面右键添加安装程序

4.ProjectInstaller.cs设计页面中

    serviceInstaller1属性中设置:

    Description(系统服务的描述)

    DisplayName (系统服务中显示的名称)

    ServiceName(系统事件查看器里的应用程序事件中来源名称)

    serviceProcessInstaller1属性设置:Account 下拉设置成 LocalSystem

5.在.net Framework的安装目录可以找到InstallUtil.exe,可以复制出来放在你的服务生成的exe一起

6.安装服务setup.bat批处理文件内容:InstallUtil Service1.exe ,安装好后可以在系统服务中找到你设置的服务名称然后可以启动这个服务

7.卸载服务UnInstall.bat批处理文件内容:InstallUtil -u Service1.exe

转载于:https://www.cnblogs.com/tuty/p/3984229.html

你可能感兴趣的文章
[转]敏捷开发中对进度的把握
查看>>
php---------正则判断字符串中是否由汉字 数字 英文字母组成
查看>>
php--------使用js生成二维码
查看>>
排序算法
查看>>
web.xml 的加载过程
查看>>
Go interfaces make test stubbing easy
查看>>
Consecutive Numbers leetcode
查看>>
sed 常用命令
查看>>
R 语言笔记 频数表和列联表
查看>>
10.2-全栈Java笔记:最全面的IO技术(二)
查看>>
Android Ubuntu Eclipse 开发环境中不能找到手机sdcard
查看>>
冒泡算法-python实现
查看>>
自定义服务器出网更新
查看>>
八,抽象类与接口
查看>>
Android 中 View 炸裂特效的实现分析 <IT蓝豹>
查看>>
将三个数由大到小输出
查看>>
bash的基础特性二
查看>>
代码审查
查看>>
新的Loki恶意软件变种正在通过网络钓鱼电子邮件传播
查看>>
Spring Cloud构建微服务架构—服务消费(Ribbon)
查看>>