把一般程式轉換成系統服務的方法,從 http://forum.slime.com.tw/thread227192.html  看來的
做紀錄,免得原始網頁不見~XD

應用 - 以Google Web Accelerator試驗製作讓程式轉作為服務並執行

以Google Web Accelerator試驗製作讓程式轉作為服務並執行

以服務的方式來運行程式,最大的好處就是不必登入就可以開始運作,同時也不容易被一般的使用者不小心關掉。但是在實際應用上,卻有著諸多的限制,最主要是因為,要以服務形式來運行的程式,必須有特殊的設計,並不是所有程式都可以這麼做的。
當然執行的條件是要先安裝GoogleWebAcceleratorSetup.msi
要把應用程式增加為服務,你需要兩個小軟體:Instsrv.exe和Srvany.exe。Instsrv.exe可以給系統安裝和刪除服務,Srvany.exe可以讓程序以服務的方式執行。
把它們放置到C:\WINDOWS\system32
這兩個軟體都包含在Windows NT Resource Kit裡,如果你沒有,也可以點擊這裡下載。
http://www.box.net/public/static/1zmelv504x.rar
今天以Google Web Accelerator的網路加速軟體來試作是否能執行
先用以下指令來安裝一個系統服務:

C:\WINDOWS\system32\instsrv.exe Accelerator C:\WINDOWS\system32\srvany.exe
Accelerator是我要做的服務名稱,
執行Regedit開啟註冊表編輯器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下,找到剛才增加的Accelerator,點擊右鍵,新增一個鍵,命名為「Parameters」,點擊新增的Parameters,並再次新增一個名稱為「Application」的子鍵,資料類型為「REG_SZ」,數值為希望作為服務執行的程序的所在位置,如果你的Windows系統安裝在C碟下,那麼OE的程序位置就是如果你的Windows系統安裝在C碟下,那麼OE的程序位置就是C:\Program Files\Google\Web Accelerator\GoogleWebAccWarden.exe,把這個路徑添入數值中。

接著再用以下這個登錄檔,來告訴 srvany.exe 我們要執行哪一個程式來作為系統服務?
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Accelerator\Parameters]
"Application"="C:\\Program Files\\Google\\Web Accelerator\\GoogleWebAccWarden.exe"

接下來需要對服務做一些額外的設定,在執行中輸入「Services.msc」並Enter鍵,在列表中找到我們剛增加的Accelerator服務,雙按開啟,來做詳細的設定。在「General」選擇項上,我們需要設定這個服務的執行方式,在圖二中可以看見,作為一個服務,有「自動(Automatic)」,「手動(Manual)」和「禁止(Disabled)」三種啟動類型,按照需要,我們一般設定成自動就可以了。

而在「Logon」選擇項下可以設定以什麼身份執行這個服務,一般可以不用理會,按照預設的設定。「Recovery」選擇項下則是進行恢復設定的,你可以指定,在服務第一次,第二次和第三次出錯之後分別採取什麼措施。

「Dependencies」則顯示了服務之間的依存關係,可以讓你察看這個服務的執行依賴哪些其它服務,以及還有什麼服務依賴於這個服務。這後面幾個對我們一般用戶沒有什麼意義。

經過這些設定,你的服務已經完全可以正常工作了。
現在設置完成重新開機後就可正常執行了
如果你玩夠了,不想再執行這個服務,可以直接禁止它在啟動的時候執行,或者使用Instsrv.exe程序刪除。方法是在指令行下輸入「C:\WINDOWS\system32\instsrv.exe Accelerator remove」,然後Enter鍵就可以了。需要注意的是Instsrv.exe這個程序也可以刪除某些系統服務,所以使用的時候一定要小心,對於系統服務,安全起見千萬不要刪除,哪怕你覺得它對你沒有用。
創作者介紹

Aking的部落格

Aking 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • 小A
  • 2009.11.12 補充
    發現用這樣的方式載入的程式如果掛掉了,即使在服務中設定要自動重新啟動一次~
    該程式還是不會自動啟動的.因為 service 其實是啟動 srvany.exe, 所以 srvany 還活著的話,就不會重新啟動服務
    因此一般程式掛了還是掛了~