The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

介紹好用工具:ServiceEx ( 將應用程式轉成 Windows 服務 )

ServiceEx 是個好用且免費的小工具,他可以將任意應用程式註冊成 Windows 服務,例如 Windows 應用程式、Console 應用程式,並且讓這些應用程式服務的方式啟動,如果該程式主動關閉或意外關閉,ServiceEx 還會自動將程式自動重啟,對於不瞭解 Windows 服務應用程式開發的人可以考慮用這套工具。

ServiceEx 目前只能透過指令列工具執行,而且設定檔必須手動編輯一個名為 ServiceEx.ini 的檔案才行,以下是安裝一個普通應用程式為 Windows 服務應用程式的過程。

先假設你有個應用程式叫做 AutoPlurker.exe,該程式是個可以自動發噗的程式,且該程式是以 Console 應用程式的方式開發的,所以該程式會不斷執行並不會只執行一次就自動停止,注意: 這是個很重要的前提,否則你就設定 排定的工作(Task Scheduler) 定時執行即可,沒必要轉換成 Windows 服務。

假設你希望該應用程式希望註冊成 Windows 服務的名稱為 AutoPlurker,以下是安裝的過程:

1. 下載主程式 http://serviceex.com/files/ServiceEx.exe

2. 建立一個 ServiceEx 設定檔,並取名為 AutoPlurker.ini 內容如下 (含中文註解說明)
    注意: 該文件不能用 UTF-8 編碼,否則會安裝失敗,請用 ASCII 編碼儲存即可

[ServiceEx]
; 設定執行程式的完整路徑 (注意:路徑中有空白時需加上雙引號包起來)
ServiceExeFullPath = "C:\Program Files\Will Software\AutoPlurker.exe" 
; 執行該程式時需加上的參數
options = "-daemon"
; 該程式是否會與桌面互動 (即代表該程式執行時若有任何對話框是否應顯示的意思)
desktop = false
; 啟動類型 (可設定的值有 Auto, Manual, Disabled 三種) (預設: Auto)
Start=Auto
; 是否安裝完成後立即啟動 (預設: false) 
StartNow=false

3. 執行以下指令進行安裝

ServiceEx install AutoPlurker

如果沒有任何錯誤就大功告成啦! 以下安裝成功的畫面圖示:

以下是在 [控制台] / [服務] 中的畫面圖示:

 

若要手動啟動服務可在 [控制台] / [服務] 中啟動或可輸入以下指令啟動:

net start AutoPlurker

 

如果要移除安裝,需遵循以下步驟:

1. 先手動停止服務

net stop AutoPlurker

2. 再執行移除服務的指令

ServiceEx remove AutoPlurker

 

如果想更新設定檔的內容 (例如更換程式路徑),需遵循以下步驟:

1. 先手動停止服務

net stop AutoPlurker

2. 再執行移除服務的指令

ServiceEx remove AutoPlurker

3. 編輯 AutoPlurker.ini 設定檔

4. 重新註冊服務

ServiceEx install AutoPlurker

 

如果希望程式在意外結束時不想自動重新啟動該程式的話,必須自行修改機碼才行,以下是設定的步驟與注意事項:

1. 開啟 regedit 機碼編輯器

2. 瀏覽到以下機碼

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<your service name>\Parameters

3. 新增一個 DWORD 類型的鍵值,並取名為 Restart

4. 設定 Restart 這個鍵值的數值,該數值可設定 0, 1 或 2,分別代表意思如下:

  • 0 - 永遠不要讓應用程式重新啟動
  • 1 - 當應用程式異常結束時才需重新啟動 ( 當程式結束時的回傳值非為 0 時 )
  • 2 -  永遠讓應用程式重新啟動,即便該程式正常結束 [ 預設值 ]

 

相關連結