windows services 是運行在后台的服務程序,可以用 vs2013 來創建,創建的步驟如下:
1.打開 vs2013 , Files -->New Project --> windows-->windows service 在本示例中的名稱為: WindowsServiceDemon 如下圖所示
2.創建好的項目的解決方案如下:
Program.cs 是程序的入口處,里面包含程序的入口方法,Servicel.cs 是服務類文件,里面包含服務的內容,所有的邏輯都在這里,Services.cs 包含兩部分:一部分是Designer 可視化設計界面,可以在這里添加各種組件,另一部分是代碼文件,里面主要寫邏輯,默認包含3個方法:OnStart、OnStop 和構造函數,還可以添加 OnPause 和 OnContinue 方法,在構造函數里,設置服務的名稱:
base.ServiceName="wisdomhu";
Services1.cs 完整的代碼如下:

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Diagnostics; 6 using System.Linq; 7 using System.ServiceProcess; 8 using System.Text; 9 using System.Threading.Tasks; 10 11 namespace WindowsServiceDemon 12 { 13 public partial class Service1 : ServiceBase 14 { 15 public Service1() 16 { 17 InitializeComponent(); // 構造函數 18 base.ServiceName = "wisdomhu";//設置服務名稱,與后面的安裝服務名稱要一致 19 20 } 21 22 protected override void OnStart(string[] args) 23 { 24 //TODO 服務啟動時的相關邏輯 25 } 26 27 protected override void OnStop() 28 { 29 //TODO 服務停止時的相關邏輯 30 } 31 } 32 }
3.雙擊 Services1.cs文件,進入設計頁面,在空白處單擊鼠標右鍵--> Add Installer (添加安裝器)
添加完后,頁面上會顯示兩個標簽,
單擊選中 serviceProcessInstaller1,鼠標右鍵 -->Properties (顯示屬性) 在右側的屬性欄中,修改屬性值,將Account 屬性設置成 localSystem,這是服務的類型
4. 按照上面的步驟,設置 serviceInstaller1 的屬性,其中 DelayedAutoStart 表示是否延遲啟動,Descirption 表示:服務的說明文字 ,DisplayName 表示: 服務的顯示名稱,ServicesDependOn 表示:服務所依賴的其它服務項,StartType 表示: 服務的啟動類型: 自動、手動、禁止, Partent表示:服務所依賴的父服務 , ServicesName 表示: 服務的名稱,服務的名稱要與在第二步代碼中設置的服務的名稱一致。
5.對項目進行編譯,並持備 bin-->debug 下的所有文件 到 自己指定的文件夾中,這里的文件夾名稱是: WindowsServicesDemon
6. 在 WindowsServicesDemon 文件夾中,分別添加兩個文件: Installer.bat 和 UnInstaller.bat (可通過文本編輯器來添加)它們分別表示:服務的安裝和服務的卸載,其中的內容分別是:
%~dp0InstallUtil.exe %~dp0WindowsServiceDemon.exe
pause
%~dp0InstallUtil /u %~dp0WindowsServiceDemon.exe
pause
注: 開頭一定要留 %~dp0 符號,表示將目錄更改為當前目錄,如果不加,可能會出錯。
7. 從 C:\Windows\Microsoft.NET\Framework\v4.0.30319 找到 InstallUtil.exe 和 InstallUtil 文件,並把這兩個文件拷備到 第 5步所創建的文件夾中,這里是 WindowsServicesDemon ,然后 選 中 Installer.bat 文件,以管理員的方式運行,如果一切正常,將會看到這樣的結果:
服務已經成功安裝,打開 服務,將會看到,剛才安裝的 wisdomhu 服務
若要卸載服務時,只要以管理員的方式運行 UnInstaller.bat 就可以了。