zoukankan      html  css  js  c++  java
  • 使用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事件; 
            }
            /// <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


  • 相关阅读:
    在Arduino IDE中安装ESP32 Filesystem Uploader
    人工智能必备数学基础:线性代数基础(1)
    人工智能必备数学基础:高等数学基础(3)
    迟到的=2020=年终总结
    常用软件-官方下载地址
    海康、大华的RTSP地址规则说明及通道问题(重点)
    各类服务器性能的瓶颈分析
    分析影响流媒体服务器性能的硬件瓶颈
    linux下程序、动态库、静态库内部添加版本号和编译时间与Windows下Qt 如何给程序添加版本信息
    css link import 两者之间的区别
  • 原文地址:https://www.cnblogs.com/smartsmile/p/6234226.html
Copyright © 2011-2022 走看看