2015年11月22日 星期日

將程式當成 Windows 系統服務啟動

將程式當成 Windows 系統服務啟動

一、 前置準備
1. 必要工具:
instsrv.exe、srvany.exe (可從 "Windows Server 2003 Resource Kit Tools" 取得)
2. 下載位置:
http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
3. 說明:
instsrv.exe:將指定的程式安裝為系統服務
srvany.exe:讓原本不能當作系統服務的程式以系統服務的方式來運作
4. 語法:
安裝成系統服務:instsrv <服務名稱> <該執行檔完整路徑>
從系統服務移除:instsrv <服務名稱> remove #需先停用該服務

二、 安裝成系統服務
1. 假設我們要將一名為"ABC.exe" 的執行檔裝成系統服務,且其路徑為 "C:\software\ABC.exe"
2. 將 "instsrv.exe" 和 "srvany.exe" 複製到 C:\Windows
3. 進入 "命令提示字元" (開始 '執行 '輸入"cmd")
4. 在命令提示字元中輸入
instsrv ABC (自訂的服務名稱) C:\Windows\srvany.exe

5. 執行 regedit,到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ABC

6. 在 ABC 上按右鍵->開新檔案->機碼->鍵入 Parameters
7. 在 Parameters 機碼下,新增字串:
第一個字串名稱取為 Application,然後改 Application 的值為應用程序的路徑及文件名
(C:\software\ABC.exe)
第二個字串名稱取為 AppParameters,改 AppParameters 的值為應用程序的路徑
(C:\software)
8. 到控制台->系統管理工具->服務,選擇此服務的"登入"項目,勾選與桌面互動
(使圖示出現在工具列)
9. 最後再啟動此服務,這樣就ok啦

三、 從系統服務移除
1. 先將 "ScktSrvr" 服務停用
2. 進入 CMD,並輸入下列命令即可
instsrv ABC remove

四、 注意事項
1. 程式在程式集-啟動,若有捷徑,請先行刪除,否則會重複啟動 2 次
(開機服務一次,使用者登入又一次)
2. 安裝成系統服務的步驟 4 中,ABC 是自訂的服務名稱,不需與程式檔名相同

來源:http://ctwivan.blogspot.tw/2010/03/blog-post.html

沒有留言:

張貼留言