创建一个Windows服务程序与实现定时器效果
1、创建一个Windows服务程序
一、 新建Window服务项目


二、 添加安装程序


三、 配置服务属性



四、 编写定时器代码

publicpartialclassService1 : ServiceBase
{
publicService1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
LogHelper.WriteLog("服务开始", LogType.remark);
System.Timers.Timer timer = new System.Timers.Timer();
timer.Elapsed += new System.Timers.ElapsedEventHandler(TimedEvent);
timer.Interval = 5000; //设置多久执行一次
timer.Enabled = true;
}
protected override void OnStop()
{
LogHelper.WriteLog("服务停止", LogType.remark);
}
//定时执行事件
privatevoid TimedEvent(object sender,System.Timers.ElapsedEventArgs e)
{
//编写要执行的代码
}
}
五、安装和卸载服务
然后重新生成项目,生成成功!到此,我们只是完成了服务的编写,接下来是写服务的安装、卸载文件了。
编写安装文件
点击项目右键-打开资源文件。从 C:\Windows\Microsoft.NET\Framework\v4.0.30319 找到 InstallUtil.exe 和 InstallUtil 文件,并把这两个文件拷备到项目dubug文件夹下,如下所示:



分别添加两个文件: Installer.bat 和 UnInstaller.bat (可通过文本编辑器来.txt文件,再把.txt 后缀修改为 .bat 即可,如果你电脑不显示文件后缀,自行百度显示文件后缀方法,这里我把 Installer.bat 和 UnInstaller.bat 取名为 安装服务.bat 和 卸载服务.bat)它们分别表示:服务的安装和服务的卸载,其中的内容分别是:
安装:
%~dp0InstallUtil.exe %~dp0FristService.exe
pause
卸载:
%~dp0InstallUtil /u %~dp0FristService.exe
pause
注: 开头要留 %~dp0 符号,表示将目录更改为当前目录,如果不加,可能会出错。
完成以上工作即可完成服务程序编写了,如下所示:

5、安装服务
点击安装服务,以管理员身份运行,安装成功如下所示:

此时,在电脑开始面板搜索 服务 ,打开电脑服务,如下所示:

右键服务,开启该服务,稍等几秒钟之后在 d:\test\log.txt 文件下就可以看到如下内容:

6、卸载服务
点击卸载服务,效果如下:

再打开服务,我们将看不到之前安装的服务了。到此为止,一个简单的服务程序就完成了,希望给大家带来帮助,喜欢的话关注点赞,谢谢。
创建一个Windows服务程序与实现定时器效果的更多相关文章
- 为MongoDB创建一个Windows服务
一:选型,根据机器的操作系统类型来选择合适的版本,使用下面的命令行查询机器的操作系统版本 wmic os get osarchitecture 二:下载并安装 附上下载链接 点击安装包,我这里是把文件 ...
- C#创建一个Windows Service
Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...
- tomcat创建一个windows服务
具体步骤如下: 1.把JDK解压到C:\Program Files\Java下,Tomcat解压到D:\tomcat下 2.配置环境变量 JAVA_HOME:C:\Program Files\Java ...
- [翻译] 使用 .NET Core 3.0 创建一个 Windows 服务
原文: .NET Core Workers as Windows Services 在 .NET Core 3.0 中,我们引入了一种名为 Worker Service 的新型应用程序模板.此模板旨在 ...
- C++使用代码创建一个Windows桌面应用程序
WinMain函数 Windows应用程序的唯一程序入口. 函数原型 int WINAPI WinMain { HINSTANCE hInstancem HINSTANCE hPreInstance, ...
- Electron 从零创建一个 Windows/OS X/Linux 的桌面可执行程序
[外链图片转存失败(img-3RucrgcX-1562556984462)(http://7vzsvy.com1.z0.glb.clouddn.com/electron-1-2.png "E ...
- 创建一个Windows Service 程序
1.新建Windows项目,选择"Windows服务"类型的项目. 2.在生成的Service1.cs中代码中写你需要的代码,如下: using System; using Sys ...
- 使用Windows Service Wrapper快速创建一个Windows Service
前言 今天介绍一个小工具的使用.我们都知道Windows Service是一种特殊的应用程序,它的好处是可以一直在后台运行,相对来说,比较适合一些需要一直运行同时不需要过多用户干预的应用程序,这一类我 ...
- 创建一个Windows的NTP Server
搭建一个VMware vRealize Suite的时候遇见了不少时间同步的问题, 实验室里网络与外界隔绝, 不能使用公网的NTP服务器, 所以使用文中的方法自己搭建了一个. 蛮好用的. Creati ...
随机推荐
- 【spring实战第五版遇到的坑】第14章spring.cloud.config.uri和token配置项无效
本文使用的Spring Boot版本为:2.1.4.RELEASE Spring Cloud版本为:Greenwich.SR1 按照书上的做法,在application.yml中配置配置服务器的地址和 ...
- 【译】在C#中实现单例模式
目录 介绍 第一个版本 --不是线程安全的 第二个版本 -- 简单的线程安全 第三个版本 - 使用双重检查锁定尝试线程安全 第四个版本 - 不太懒,不使用锁且线程安全 第五版 - 完全懒惰的实例化 第 ...
- ArcGIS JS API多线程克里金插值
最近做关于雨量插值的项目,本来使用后台的GP工具做的,但是处理时间比较长需要十几秒钟左右,所以研究怎么通过前台来计算. 参考下克里金例子,思路是生成要计算区域的100乘以100网格,然 ...
- 国内常用DNS
114.114.114.114 国内移动,电信,联通通用DNS 223.5.5.5 阿里 223.6.6.6 阿里 180.76.76.76 百度
- SQL内模糊查询语句拼接时单引号'问题
下面以存储过程查询所有为例,非存储过程(或不是查询所有将*替换为你想要查询的列即可)更为简单, 语法:select * from 表名 where 列名like'%条件%' 拼接后的set @变量名 ...
- 【English】20190429
detect发现 [dɪˈtekt] charger充电器 [ˈtʃɑːrdʒər] unable to detect charger
- 使用exceljs时报错:no such file or directory
最近使用exceljs生成excel并保存时,总是失败 await workbook.xlsx.writeFile(tep) .then(function () { context.result = ...
- Node.js 事件循环机制
Node.js 采用事件驱动和异步 I/O 的方式,实现了一个单线程.高并发的 JavaScript 运行时环境,而单线程就意味着同一时间只能做一件事,那么 Node.js 如何通过单线程来实现高并发 ...
- 还原堆栈信息,分析地形系统使用ASTC格式的纹理导致Crash的问题
0x00 前言 在这篇文章中,我们选择了过去一周Unity官方社区交流群中比较有代表性的几个问题,总结在这里和大家进行分享.主要涵盖了IL2CPP.Scripting.Virtual Reality. ...
- spark 机器学习基础 数据类型
spark的机器学习库,包含常见的学习算法和工具如分类.回归.聚类.协同过滤.降维等使用算法时都需要指定相应的数据集,下面为大家介绍常用的spark ml 数据类型.1.本地向量(Local Vect ...