srvany.exe和instsrv.exe打包exe為windows服務趟的坑


srvany.exe和instsrv.exe打包exe為windows服務趟的坑

前言

srvany.exe可用於將任何EXE程序作為Windows服務運行。我們可以通過它讓我們的程序以SYSTEM賬戶啟動,或者實現隨機器啟動而自啟動,也可以隱藏不必要的窗口,比如說控制台窗口等等。其它廢話就不多說了,直接進入正題:

部分資源文件來源:https://www.cr173.com/soft/64394.html
可下載的程序:
1、instsrv.exe
2、srvany.exe

安裝服務批處理文件

install.bat

@echo off
cd /d %~dp0
call run-install.bat  你的服務名稱 你要做成服務的可執行文件.exe
pause

run-install.bat

@echo off

rem 參數依次為 服務名稱 可執行文件名稱
@echo 服務名稱:%1
@echo 程序名稱:%2

rem 定義需要運行的程序路徑
set curExe=%~dp0%2
rem 定義注冊表路徑
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\你的服務名稱\Parameters\
rem 定義srvany.exe文件路徑
set sourcePath=%~dp0srvany.exe

rem 進入當前目錄
cd /d "%~dp0"
rem 安裝引導服務
instsrv %1  "%sourcePath%"
@echo 服務添加完成

rem 添加注冊表語法: reg add 注冊表路徑 /v 項名稱 /t 值類型 /d 數據 /f 表示強行修改不提示

rem 名稱 Application 值為你要作為服務運行的程序地址 /d對應的參數有斜杠不是為了轉義引號,而是路徑還有斜杠,默認將引號轉義了,額外添加斜杠是為了保留引號
reg add %regpath% /v AppDirectory /t REG_SZ /d "%~dp0\" /f

rem 名稱 AppDirectory 值為你要作為服務運行的程序所在文件夾路徑
reg add %regpath% /v Application /t REG_SZ /d "%curExe%" /f 

rem 名稱 AppParameters 值為你要作為服務運行的程序啟動所需要的參數
reg add %regpath% /v AppParameters /t REG_SZ /f
@echo 注冊表添加完成

注意* 坑來了,單看install.bat文件,你可能只注意要改“你的服務名稱”和“你要做成服務的可執行文件.exe”,但是光改這兩個地方是不行的,還要改run-install.bat里面的 set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\你的服務名稱\Parameters\ 這一行里面的“你的服務名稱”。

刪除服務批處理文件

del.bat

@echo off
cd /d %~dp0
call run-del.bat  你的服務名稱
pause

run-del.bat

@echo off

rem 參數依次為 你的服務名稱
@echo 你的服務名稱:%1

rem 進入當前目錄
cd /d %~dp0
rem 停止服務
net stop %1
rem 卸載引導服務
instsrv %1 remove


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM