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事件;   

        }  

        /// <summary>  

        /// 定时检查,并执行方法  

        /// </summary>  

        /// <param name="source"></param>  

        /// <param name="e"></param>  

        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

转自:http://blog.csdn.net/windxxf/article/details/6014538

.net 定时执行 windows 服务的更多相关文章

  1. windows 服务实现定时任务调度(Quartz.Net)

    我们通常在一些情况下需要软件具有一个自动执行某些任务的功能,但是又不希望直接启动软件,或者每次都要手动的来启动软件,这时我们可可以考虑到windows服务了. 首先创建一个windows服务项目(详细 ...

  2. linux centos7 定时执行服务监控脚本

    2021-08-25 1. 需求 在服务挂掉之后我们要怎么做才能保证服务在短时间内开启?可以编写脚本监控服务的状态,在服务挂掉后及时将其开启,并定时执行该脚本. 2. 脚本编写 思路:平常我们可以通过 ...

  3. Centos7 利用crontab定时执行任务及配置方法

    crond是什么? crond 和crontab是不可分割的.crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于 ...

  4. linux下使用crontab定时执行脚本

    使用crontab定时执行脚本 cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务: crontab –e : 修改 crontab 文件,如果文件不存在会自 ...

  5. 使用 Topshelf 结合 Quartz.NET 创建 Windows 服务

    Ø  前言 之前一篇文章已经介绍了,如何使用 Topshelf 创建 Windows 服务.当时提到还缺少一个任务调度框架,就是 Quartz.NET.而本文就展开对 Quartz.NET 的研究,以 ...

  6. 快速搭建多线程Windows服务解决方案

    一.引言 在软件开发过程中windows服务有的时候非常有用,用于同步数据,发送邮件,宿主WF引擎服务等,但是快速搭建一个好用多线程进行多任务处理的程序往往是一个项目必须考虑的问题.自己在项目中也经常 ...

  7. C#创建windows服务并定时执行

    一.创建window服务 1.新建项目-->选择Windows服务.默认生成文件包括Program.cs,Service1.cs 2.在Service1.cs添加如下代码: System.Tim ...

  8. .net 开发定时执行的windows服务

    环境:win7+vs2010+Oracle11g+office2010(64位操作系统) 需求:开发定时执行的windows服务从数据库中查询数据下载到指定地址Excel中 一.添加新建项目——win ...

  9. C# 编写windows服务及服务的安装、启动、删除、定时执行任务

    一.编写windows服务 1.VS2017  - 创建服务Myservice 2.创建好项目之后 --- >> 双击 Service1.cs  ---- >>  出现一个设计 ...

随机推荐

  1. Codeforces Round #316 (Div. 2) B 贪心

    B. Simple Game time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  2. vue的roter使用

    1在src下建立router文件夹,再建立router.js import Vue from 'vue' import Router from 'vue-router' import home fro ...

  3. MFC 禁用输入法

    #include <Imm.h> HIMC m_hImc; // 全局或者成员变量 // Function for Disabling IME void CMyDialog::Disabl ...

  4. Web系统从Oracle迁移至MySQL

    前两天领导给了个活,数据库迁移,原来的系统是用的Oracle数据库,现在要改成MySql,当时没多想就接下来了,原来的系统用的框架式SSI,于是大概想了下需要作调整无非以下几点 第一 数据库迁移 第二 ...

  5. IntelliJ IDEA如何导入Gradle项目

    最近学习Gradle,本文来重点介绍一下,如何使用IntelliJ IDEA导入`Gradle项目的一种方法. 选择菜单栏的File->Open. 在打开的窗口选择对应Gradle项目的buil ...

  6. codeforces round373(div.2) 题解

    这一把打得还算过得去... 最大问题在于A题细节被卡了好久...连续被hack两次... B题是个规律题...C题也是一个细节题...D由于不明原因标程错了被删掉了...E是个线段树套矩阵... 考试 ...

  7. Codeforces Round #398 (Div. 2) A-E

    分数史上新低 开场5分钟过了A题,想着这次赌一把手速,先去切C吧 看完C题觉得这应该是道水题,码了十分钟提交,WA 想着这明明是道水题,估计少考虑了情况,添了几行再交,WA 不可能啊,这题都A不掉,和 ...

  8. Vijos[1028]魔族密码

    风之子刚走进他的考场,就……花花:当当当当~~偶是魅力女皇——花花!!^^(华丽出场,礼炮,鲜花)风之子:我呕……(杀死人的眼神)快说题目!否则……-_-###花花:……咦~~好冷~~我们现在要解决的 ...

  9. LOJ#2086. 「NOI2016」区间

    $n \leq 500000$个区间,从中挑出一些,使得至少有一个点被$m$个选中区间包含,且选中区间长度的极差最小. 区间题死脑筋晚期:把区间按左端点排序,然后右端点用个优先队列来弹,然后需要维护下 ...

  10. DB2 数据库中字段特定字符替换为空

    Update RM_CarInfo set ImportTitle = Replace(ImportTitle,'ZD','') WHERE ImportTitle LIKE'%ZD%';