利用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(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來實現,具體如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM