控制台程序发布为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

https://www.cnblogs.com/zh672903/p/10981931.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值