背景
最近有個需求,需要實現將任意exe安裝成window service
。
Windows服務是指Windows操作系統中的一種運行在后臺的計算機程序,類似于Unix守護進程。
實現效果
1、啟動Exe。
2、需要輸入3個地方:
服務名稱,這里輸入了test
選擇要轉換成服務的執行程序路徑
如果有參數,則輸入相關參數
3、點擊安裝,即可。
4、效果如下,可以看到服務已經安裝。
5、點擊卸載按鈕,即可刪除服務。
實現原理
其實很簡單,基于Instsrv.exe
和srvany.exe
實現。
打開注冊表,能看到其寫入的內容。
分解動作,以下步驟進行操作:
下載Instsrv.exe和srvany.exe:
Instsrv.exe
和srvany.exe
是Windows Resource Kit工具中的一部分,你可以從Microsoft官方網站下載并安裝Windows Resource Kit工具包。
使用Instsrv.exe安裝服務:
將你的exe文件和srvany.exe
放在一個目錄下,比如C:\\YourService
.
打開命令提示符(以管理員權限運行)。
使用以下命令來安裝服務:
instsrv YourServiceName "C:\\YourService\\srvany.exe"
其中,YourServiceName
是你要為服務指定的名字,C:\\YourService\\srvany.exe
是srvany.exe的路徑。
配置srvany服務:
使用注冊表編輯器(regedit)打開注冊表。
導航到HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\YourServiceName\\Parameters
。
在Parameters
鍵下創建一個新的字符串值,命名為Application
,并將其值設置為你的exe文件的完整路徑,比如C:\\YourService\\your_exe_file.exe
。
可以在Parameters
鍵下創建其他參數,比如AppDirectory
指定工作目錄等。
啟動和管理服務:
通過以上步驟,你就可以使用Instsrv.exe
和srvany.exe
將一個exe文件安裝為Windows服務。
提供一個完整的執行包
百度網盤鏈接: https://pan.baidu.com/s/1Djgkhc1MJ_K6U6dVXy3mMA?pwd=ja2q
該文章在 2024/3/29 23:26:08 編輯過