程序语言: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来实现,具体如下:

最新文章

  1. My TWI
  2. 图表控件FlowChart.NET详细介绍及免费下载地址
  3. poj 2226 Muddy Fields(合理建图+二分匹配)
  4. php常用时间戳记录
  5. Oracle Essbase入门系列(四)
  6. ios 指南针
  7. 正整数转换成N进制的数组
  8. Hibernate4.2.2使用Annotation配置
  9. Terrible Sets
  10. 手机SIM卡知识大科普
  11. 浅谈移动Web开发(上):深入概念
  12. Sublime themes/ lint themes setup
  13. js中变量的作用域、变量提升、链式作用域结构
  14. Eclipse 安装 SVN 插件的两种方法
  15. 服务器使用nginx做代理,通过HttpServletRequest获取请求用户真实IP地址
  16. SDL2源代码分析3:渲染器(SDL_Renderer)
  17. github 进阶说明
  18. Spark源码剖析 - SparkContext的初始化(九)_启动测量系统MetricsSystem
  19. Sql语句报ORA-01795: 列表中的最大表达式数为 1000
  20. Java使用 SFTP实现文件上传下载

热门文章

  1. 如何在Docker容器之间拷贝数据
  2. Vue中使用Sass全局变量
  3. springboot(1)@SpringBootApplication
  4. .Net Core3 新特性整理
  5. CandyCrush 糖果传奇源码+素材+教程
  6. 启用IIS Express SSL(Https)的注意事项
  7. PHP系列 | PDO::prepare(): send of 68 bytes failed with errno=32 Broken pipe
  8. Vue 项目中断点没有跳转到指定源码的问题
  9. Fragment: 使用newInstance()来实例化fragment(转)
  10. Python统计数据库中的数据量【含MySQL、Oracle】