利用windows服务实现整点报时功能
程序语言:C#
实现目标:程序托管自动运行,每到整点播放语音报时。
准备素材:00——23点的整点报时声音文件。
实现过程:
1.新建windows服务项目

2.添加安装程序

3.设置服务属性
【添加安装程序】后,会生成两个组件,分别为“serviceInstaller1”及“serviceProcessInstaller1”,如下图所示:

设置serviceInstaller1属性如下:

设置serviceProcessInstaller1属性如下:

4.编写整点报时代码
重命名默认的“Service1”为“NowTimeService”,其属性如下:

进入后台,主要代码如下:
protected override void OnStart(string[] args)
{
System.Timers.Timer timer1 = new System.Timers.Timer();
timer1.Elapsed += new System.Timers.ElapsedEventHandler(Timer1_Tick);
timer1.Enabled = true;
} private void Timer1_Tick(object sender, EventArgs e)
{
if (DateTime.Now.ToString("mm:ss") == "00:00")
{
try
{
// 语音报时
SoundPlayer player = new SoundPlayer
{
SoundLocation = System.AppDomain.CurrentDomain.BaseDirectory + "/Audio/" + DateTime.Now.ToString("HH") + ".wav"
};
player.Load(); //同步加载声音
player.Play(); //启用新线程播放
//player.PlayLooping(); //循环播放模式
//player.PlaySync(); //UI线程同步播放
}
catch (Exception ex)
{
WriteWindowsLog.WriteErrorLog("语音报时错误:" + ex.Message);
}
}
}
程序编译后,会在bin目录下生成exe文件,该exe文件不可以直接运行,需要安装服务后方可运行。
5.安装windows服务程序
将bin目录下的程序复制到待安装目录,需要注意的是,安装路径不能出现空格,如:Program Files,这种路径是无法正确安装的。我使用的是C盘的Windows目录:

利用C:\Windows\Microsoft.NET\Framework64\v4.0.30319>目录下的installutil.exe来安装我们的windows服务程序,具体如下:

安装完成后,打开系统【服务】,即可看到名为NowTime的服务:

设置启动模式为“自动”,并启动服务即可。
到此,程序就安装完成了,整点时刻即可听到报时的声音了。
5.卸载windows服务程序
如果需要卸载windows服务程序,还是利用C:\Windows\Microsoft.NET\Framework64\v4.0.30319>目录下的installutil.exe来实现,具体如下:

利用windows服务实现整点报时功能的更多相关文章
- leaflet结合geoserver利用WFS服务实现图层删除功能(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- openlayers6结合geoserver利用WFS服务实现图层新增功能(附源码下载)
内容概览 1.openlayers6结合geoserver利用WFS服务实现图层新增功能2.源代码demo下载 效果图如下: 本篇主要是openlayers6通过调用geoserver发布的地图服务W ...
- 如何优雅的利用Windows服务来部署ASP.NET Core程序
上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能.但是美中不足 ...
- 利用windows服务+timer或者windows任务计划程序+控制台进行进行每日邮件推送
1.邮件发送代码 using System.Text; using System.Net; using System.Net.Mail; using System.Reflection; using ...
- leaflet结合geoserver利用WFS服务实现图层新增功能(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- .Net创建Windows服务完成批量导出功能(错误速查)
无法打开计算机“.”上的服务控制管理器.此操作可能需要其他特权. 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为 ...
- 创建、设置和安装Windows服务
文章大部分内容转自:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html:和:http://www.cnblog ...
- C#创建、设置和安装Windows服务
文章大部分内容转自:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html:和:http://www.cnblog ...
- C# VS2010 windows服务的安装
可能是太过于懒惰的原因,研究个windows 服务的安装程序都花了大半天时间.在网上看了一些示例,大部分都言过其实,把过程搞得太过复杂,老是需要去研究如何利用InstallUtil.exe及其参数.事 ...
随机推荐
- 拦截RestTemplate的请求
RestTemplate一般用于方法内部请求调用,请求报错时难以调试,所以可以为RestTemplate加拦截器进行调试,具体操作如下: 拦截器LoggingClientHttpRequestInte ...
- C++的static_cast、dynamic_cast和const_cast用法
static_cast.dynamic_cast和const_cast static_cast: 用法: static_cast < type-id > (expression) ...
- vs开启,Windows 10磁盘占用100%解决办法
https://www.cnblogs.com/time-is-life/p/8888441.html 最后把Home Group相关的服务都改成禁用. 注意: 即使这两个服务没有启动也不行, 一定要 ...
- Java基础 awt Font 四种字体样式
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- ES6----拓展运算符 三个点【...】
[...]拓展运算符是什么? es6中引入扩展运算符(...),它用于把一个数组转化为用逗号分隔的参数序列,它常用在不定参数个数时的函数调用,数组合并等情形.因为typeScript是es6的超集,所 ...
- Python3基础 from...import 局部导入
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- bootstrap-select
bootstrap-select 周下载量 63,214 是bootstrap中select库下载量最多的. https://www.npmjs.com/package/bootstrap-selec ...
- Multi-Channel Buffers
This describes a 4 channels buffer of 16 bit samples.Data organisation :Sample 1, front left speaker ...
- HttpClient get请求获取数据流
HttpClient get请求获取数据流,将数据保存为文件 public String getStreamFile(String url) throws Exception { HttpClient ...
- Jsp编写的页面如何适应手机浏览器页面
经常遇到JSP网页需要适配手机设备的尺寸问题 解决: 在JSP加入<meta name="viewport" content="width=device-width ...