ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

利用windows服务实现整点报时功能

2021-05-19 11:06:11  阅读:240  来源: 互联网

标签:服务程序 整点 windows player 报时 安装


程序语言: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(1000);
    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,player,报时,安装
来源: https://blog.51cto.com/u_7034817/2785578

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有