技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

使用srvany.exe將程序安裝成windows服務(wù)的詳細(xì)教程

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-11-29 00:18┆點擊:

srvany.exe介紹

srvany.exe是Microsoft Windows Resource Kits工具集的一個實用的小工具,用于將任何EXE程序作為Windows服務(wù)運行。也就是說srvany只是其注冊程序的服務(wù)外殼,這個特性對于我們 來說非常實用,我們可以通過它讓我們的程序以SYSTEM賬戶啟動,或者實現(xiàn)隨機器啟動而自啟動,也可以隱藏不必要的窗口,比如說控制臺窗口等等。

資源下載

你可以通過下載并安裝Microsoft Windows Resource Kits 獲得或者直接在本文下載。

示例中的控制臺程序僅僅是向當(dāng)前路徑不停的寫入時間。

srvany 打包下載地址 測試程序,測試程序(含控制臺項目)

如何使用

當(dāng)你獲取到srvany后并決定將某程序作為服務(wù)啟動后,請先將srvany安裝為系統(tǒng)服務(wù),具體的安裝方法有很多,這里使用instsrv,語法如下:

安裝 instsrv ServiceName C:WindowsSystem32srvany.exe
卸載 instsrv ServiceName remove

(ServiceName 即你自己定義的服務(wù)名稱,可以是要作為系統(tǒng)服務(wù)啟動的應(yīng)用程序的名稱。)

安 裝完畢后,我們需要對srvany.exe進行配置,以便于能夠加載我們指定的程序,配置的方法是,開始 - 運行 - regedit,打開注冊表,定位到下面的路徑。HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesServiceName
如果該服務(wù)名下沒有Parameters項目,則對服務(wù)名稱項目右擊新建項,名稱為Parameters,然后定位到Parameters項,新建以下幾個字符串值。

名稱 Application 值為你要作為服務(wù)運行的程序地址。
名稱 AppDirectory 值為你要作為服務(wù)運行的程序所在文件夾路徑。
名稱 AppParameters 值為你要作為服務(wù)運行的程序啟動所需要的參數(shù)。

比如這里是個配置實例,我們這里配置的服務(wù)名稱是MyService,下面是MyService的安裝配置情況:

使用srvany.exe將程序安裝成windows服務(wù)的詳細(xì)教程



至此,MyService已經(jīng)安裝成windows服務(wù)了,在Window服務(wù)項中即可查看。

本文當(dāng)然不會僅僅是照搬文章,最近在學(xué)習(xí)批處理,將其中的操作使用批處理來完成。

批處理說明

  1. run-install.bat 封裝了安裝服務(wù)的操作(上面有提到)。需要傳入?yún)?shù)有服務(wù)名稱,程序名稱。

復(fù)制代碼

代碼如下:


@echo off
rem 參數(shù)依次為 服務(wù)名稱 可執(zhí)行文件名稱
@echo 服務(wù)名稱:%1
@echo 程序名稱:%2</p> <p>rem 定義需要運行的程序路徑
set curExe=%~dp0%2
rem 定義注冊表路徑
set regpath=HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMyServiceParameters
rem 定義srvany.exe文件路徑
set sourcePath=%~dp0srvany.exe</p> <p>rem 進入當(dāng)前目錄
cd /d "%~dp0"
rem 安裝引導(dǎo)服務(wù)
instsrv %1 "%sourcePath%"
@echo 服務(wù)添加完成</p> <p>rem 添加注冊表語法: reg add 注冊表路徑 /v 項名稱 /t 值類型 /d 數(shù)據(jù) /f 表示強行修改不提示</p> <p>rem 名稱 Application 值為你要作為服務(wù)運行的程序地址 /d對應(yīng)的參數(shù)有斜杠不是為了轉(zhuǎn)義引號,而是路徑還有斜杠,默認(rèn)將引號轉(zhuǎn)義了,額外添加斜杠是為了保留引號
reg add %regpath% /v AppDirectory /t REG_SZ /d "%~dp0" /f</p> <p>rem 名稱 AppDirectory 值為你要作為服務(wù)運行的程序所在文件夾路徑
reg add %regpath% /v Application /t REG_SZ /d "%curExe%" /f </p> <p>rem 名稱 AppParameters 值為你要作為服務(wù)運行的程序啟動所需要的參數(shù)
reg add %regpath% /v AppParameters /t REG_SZ /f
@echo 注冊表添加完成

2.install.bat 命令含義:進入當(dāng)前目錄,調(diào)用當(dāng)前目錄下的run-install.bat文件,并傳入?yún)?shù),完成服務(wù)安裝。服務(wù)名:MyService 執(zhí)行程序:Console.exe

復(fù)制代碼

代碼如下:


@echo off
cd /d %~dp0
call run-install.bat MyService Console.exe
pause

3.run-del.bat 簡單封裝了卸載服務(wù)的操作,傳入服務(wù)名稱即可。

復(fù)制代碼

代碼如下:


@echo off
rem 參數(shù)依次為 服務(wù)名稱
@echo 服務(wù)名稱:%1</p> <p>rem 進入當(dāng)前目錄
cd /d %~dp0
rem 卸載引導(dǎo)服務(wù)
instsrv %1 remove

4.del.bat 命令含義:進入當(dāng)前目錄,調(diào)用當(dāng)前目錄下的run-del.bat文件,并傳入?yún)?shù),完成服務(wù)卸載。服務(wù)名:MyService

復(fù)制代碼

代碼如下:


@echo off
cd /d %~dp0
call run-del.bat MyService
pause

總結(jié)