程序語言: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來實現,具體如下: