zoukankan      html  css  js  c++  java
  • 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服务就完成了所有的操作,以后每次开 机后就自动启动运行该服务。

     

  • 相关阅读:
    boost::ASIO的异步方式
    C++ 类构造函数初始化列表
    C++11 shared_ptr(智能指针)详解
    C/C++中静态成员变量和静态成员函数的含义与不同用法
    静态局部变量
    GDB入门教程之如何使用GDB启动调试
    Qt的QWaitCondition了解一下吧
    Qt信号量QSemaphore认识一下
    瞧一瞧Qt的QMutex
    Qt的读写锁QReadWriteLock要怎么玩?
  • 原文地址:https://www.cnblogs.com/luyiwei/p/3617237.html
Copyright © 2011-2022 走看看