程序语言: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服务实现整点报时功能的更多相关文章

  1. leaflet结合geoserver利用WFS服务实现图层删除功能(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  2. openlayers6结合geoserver利用WFS服务实现图层新增功能(附源码下载)

    内容概览 1.openlayers6结合geoserver利用WFS服务实现图层新增功能2.源代码demo下载 效果图如下: 本篇主要是openlayers6通过调用geoserver发布的地图服务W ...

  3. 如何优雅的利用Windows服务来部署ASP.NET Core程序

    上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能.但是美中不足 ...

  4. 利用windows服务+timer或者windows任务计划程序+控制台进行进行每日邮件推送

    1.邮件发送代码 using System.Text; using System.Net; using System.Net.Mail; using System.Reflection; using ...

  5. leaflet结合geoserver利用WFS服务实现图层新增功能(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  6. .Net创建Windows服务完成批量导出功能(错误速查)

    无法打开计算机“.”上的服务控制管理器.此操作可能需要其他特权. 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为 ...

  7. 创建、设置和安装Windows服务

    文章大部分内容转自:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html:和:http://www.cnblog ...

  8. C#创建、设置和安装Windows服务

    文章大部分内容转自:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html:和:http://www.cnblog ...

  9. C# VS2010 windows服务的安装

    可能是太过于懒惰的原因,研究个windows 服务的安装程序都花了大半天时间.在网上看了一些示例,大部分都言过其实,把过程搞得太过复杂,老是需要去研究如何利用InstallUtil.exe及其参数.事 ...

随机推荐

  1. 奇袭 CodeForces 526F Pudding Monsters 题解

    考场上没有认真审题,没有看到该题目的特殊之处: 保证每一行和每一列都恰有一只军队,即每一个Xi和每一个Yi都是不一样 的. 于是无论如何也想不到复杂度小于$O(n^3)$的算法, 只好打一个二维前缀和 ...

  2. Zookeeper请求处理原理分析

    Zookeeper是可以存储数据的,所以我们可以把它理解一个数据库,实际上它的底层原理本身也和数据库是类似的. 一.数据库的原理 我们知道,数据库是用来存储数据的,只是数据可以存储在内存中或磁盘中.而 ...

  3. 自己写的一个 CGBLIB 动态代理【原创】

    CGLIB代理类,用CGLIB来实现一个代理类.大致原理描述如下: 1.使用Enhancer类来生成一个继续于被代理类的子类,此子类会重写被代理类(父类)中所有的非final的public方法: 2. ...

  4. buddo源码分析-transport组件之Netty(一)

    dubbo 2.5.10 版本,netty仍然使用的是netty的3.10.5版本,我们从下面的代码可以看出,SPI默认使用的是“netty”,而不是“netty4”. package com.ali ...

  5. 使用 Microsoft.Web.Administration 管理iis

    How to Automate IIS 7 Configuration with .NET How to Automate IIS 7 Configuration with .NET Are you ...

  6. Oracle的“ORA-00937: 不是单组分组函数” 如何解决?

    之前在编写oracle的sql语句时遇到这个问题,这里做个记录 问题描述:ORA-00937: 不是单组分组函数 问题原因:select语句中又在查询某一列的值,其中还有聚合函数 原先本人编写SQL是 ...

  7. ios兼容性收集整理

    1. ios系统兼input输入框光标问题 异常现象:苹果手机文本输入框样式异常——光标聚焦到文本框,光标高度充满文本框,输入内容,光标高度为文本框上边框到输入内容底部: 光标聚焦: 输入内容: 异常 ...

  8. Tesserac初探

    安装Tesseract Windows 系统 下载可执行安装文件https://code.google.com/p/tesseract-ocr/downloads/list安装.或者https://d ...

  9. 解决SQL Server 阻止了对组件Ad Hoc Distributed Queries访问的方法

    来源:http://www.htmer.com/article/922.htm 今天单位一ASP.NET网站,里面有个功能是导出数据,发现一导出就报错,报错内容是:SQL  Server 阻止了对组件 ...

  10. Algorithm测试

    Algorithm测试 #include <algorithm> #include <vector> #include <iostream> using names ...