srvany.exe介紹
srvany.exe是Microsoft Windows Resource Kits工具集的一個實用的小工具,用於將任何EXE程序作為Windows服務運行。也就是說srvany只是其注冊程序的服務外殼,這個特性對於我們 來說非常實用,我們可以通過它讓我們的程序以SYSTEM賬戶啟動,或者實現隨機器啟動而自啟動,也可以隱藏不必要的窗口,比如說控制台窗口等等。
資源下載
你可以通過下載並安裝Microsoft Windows Resource Kits 獲得或者直接在本文下載。
示例中的控制台程序僅僅是向當前路徑不停的寫入時間。
srvany 打包下載地址 測試程序,測試程序(含控制台項目)
如何使用
當你獲取到srvany後並決定將某程序作為服務啟動後,請先將srvany安裝為系統服務,具體的安裝方法有很多,這裡使用instsrv,語法如下:
安裝 instsrv ServiceName C:WindowsSystem32srvany.exe
卸載 instsrv ServiceName remove
(ServiceName 即你自己定義的服務名稱,可以是要作為系統服務啟動的應用程序的名稱。)
安 裝完畢後,我們需要對srvany.exe進行配置,以便於能夠加載我們指定的程序,配置的方法是,開始 - 運行 - regedit,打開注冊表,定位到下面的路徑。HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesServiceName
如果該服務名下沒有Parameters項目,則對服務名稱項目右擊新建項,名稱為Parameters,然後定位到Parameters項,新建以下幾個字符串值。
名稱 Application 值為你要作為服務運行的程序地址。
名稱 AppDirectory 值為你要作為服務運行的程序所在文件夾路徑。
名稱 AppParameters 值為你要作為服務運行的程序啟動所需要的參數。
比如這裡是個配置實例,我們這裡配置的服務名稱是MyService,下面是MyService的安裝配置情況:
至此,MyService已經安裝成windows服務了,在Window服務項中即可查看。
本文當然不會僅僅是照搬文章,最近在學習批處理,將其中的操作使用批處理來完成。
批處理說明
1. run-install.bat 封裝了安裝服務的操作(上面有提到)。需要傳入參數有服務名稱,程序名稱。
復制代碼 代碼如下:
2.install.bat 命令含義:進入當前目錄,調用當前目錄下的run-install.bat文件,並傳入參數,完成服務安裝。服務名:MyService 執行程序:Console.exe
復制代碼 代碼如下:
3.run-del.bat 簡單封裝了卸載服務的操作,傳入服務名稱即可。
復制代碼 代碼如下:
4.del.bat 命令含義:進入當前目錄,調用當前目錄下的run-del.bat文件,並傳入參數,完成服務卸載。服務名:MyService
復制代碼 代碼如下:
總結
1.按照以上操作即可輕松將程序添加到系統服務中去。
2.使用場景為,該程序需要開機啟動,而且是在Window未登錄的情況下。(常規的開機啟動應用程序需要輸入機器用戶名、密碼進入到桌面後才啟動)
3.將程序部署成服務後,該程序依然可以雙擊啟動,如果不需要,建議將程序中添加命令行參數判斷來禁止雙擊啟動該程序。
4.在服務的屬性中,可以設置其與桌面進行交互,此時Window會提示交互式消息提示,點擊後即可顯示程序窗體。
5.如果你的程序是做成安裝包,調用安裝服務的批處理和調用卸載服務的批處理,則可以放在安裝程序和卸載程序的時候去執行,簡化用戶操作。