使用srvany.exe将程序安装成windows服务的详细教程(附bat程序)
srvany.exe介绍srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。 资源下载你可以通过下载并安装Microsoft Windows Resource Kits 获得或者直接在本文下载。 示例中的控制台程序仅仅是向当前路径不停的写入时间。 srvany 打包下载地址 测试程序,测试程序(含控制台项目)
instsrv.exe srvany.exe 打包(可将程序安装成windows服务)
类型:系统辅助大小:49KB语言:简体中文时间:2013-09-24查看详情如何使用 当你获取到srvany后并决定将某程序作为服务启动后,请先将srvany安装为系统服务,具体的安装方法有很多,这里使用instsrv,语法如下:
安装 instsrv ServiceName C:\Windows\System32\srvany.exe 卸载 instsrv ServiceName remove 或者 sc delete servername
脚本之家补充:如果服务名中间有空格需要用双引号例如 sc delete "server name"
(ServiceName 即你自己定义的服务名称,可以是要作为系统服务启动的应用程序的名称。) 安装完毕后,我们需要对srvany.exe进行配置,以便于能够加载我们指定的程序,配置的方法是,开始 - 运行 - regedit,打开注册表,定位到下面的路径。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName 如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。 名称 Application 值为你要作为服务运行的程序地址。 名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。 名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。 比如这里是个配置实例,我们这里配置的服务名称是MyService,下面是MyService的安装配置情况: 至此,MyService已经安装成windows服务了,在Window服务项中即可查看。
本文当然不会仅仅是照搬文章,最近在学习批处理,将其中的操作使用批处理来完成。
批处理说明
1. run-install.bat 封装了安装服务的操作(上面有提到)。需要传入参数有服务名称,程序名称。
@echo offrem 参数依次为 服务名称 可执行文件名称@echo 服务名称:%1@echo 程序名称:%2rem 定义需要运行的程序路径set curExe=%~dp0%2rem 定义注册表路径set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\rem 定义srvany.exe文件路径set sourcePath=%~dp0srvany.exerem 进入当前目录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\" /frem 名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径reg add %regpath% /v Application /t REG_SZ /d "%curExe%" /f rem 名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数reg add %regpath% /v AppParameters /t REG_SZ /f@echo 注册表添加完成
2.install.bat 命令含义:进入当前目录,调用当前目录下的run-install.bat文件,并传入参数,完成服务安装。服务名:MyService 执行程序:Console.exe
@echo offcd /d %~dp0call run-install.bat MyService Console.exepause
3.run-del.bat 简单封装了卸载服务的操作,传入服务名称即可。
@echo offrem 参数依次为 服务名称@echo 服务名称:%1rem 进入当前目录cd /d %~dp0rem 卸载引导服务instsrv %1 remove
4.del.bat 命令含义:进入当前目录,调用当前目录下的run-del.bat文件,并传入参数,完成服务卸载。服务名:MyService
@echo offcd /d %~dp0call run-del.bat MyServicepause
总结
1.按照以上操作即可轻松将程序添加到系统服务中去。 2.使用场景为,该程序需要开机启动,而且是在Window未登录的情况下。(常规的开机启动应用程序需要输入机器用户名、密码进入到桌面后才启动) 3.将程序部署成服务后,该程序依然可以双击启动,如果不需要,建议将程序中添加命令行参数判断来禁止双击启动该程序。 4.在服务的属性中,可以设置其与桌面进行交互,此时Window会提示交互式消息提示,点击后即可显示程序窗体。 5.如果你的程序是做成安装包,调用安装服务的批处理和调用卸载服务的批处理,则可以放在安装程序和卸载程序的时候去执行,简化用户操作。
相关阅读
-
02-01
-
01-31
-
01-31
-
01-31
推荐阅读
-
-
江苏省养老方式及服务需求研究报告发布
当你老了,如何养老?10月11日,江苏省消保委发布《江苏省养老方式及服务需求研究报告》(简称《报告》),本次研究采用线上问卷和线下问卷调 更多
2021-10-12 07:55:20
-
-
电影票房狂吸金超40亿元 上市公司表现如何呢?
在刚刚过去的国庆长假里,电影票房成绩优秀。据灯塔专业版数据,2021年国庆档总票房43 86亿元,这是国庆档票房历史第二次破40亿,仅次于201 更多
2021-10-09 07:54:06
-
-
国庆假期你去露营了吗?我国目前有3.2万家露营相
相约露营,现如今变得新潮又时尚。把客厅、厨房和卧室,都搬到野外去,食于山野,宿于山野,每一帧画面都透露出一种岁月静好的美好。扬子晚 更多
2021-10-08 08:27:04
-
-
我国现存眼镜企业超132万家 南京居全国第四
日前,在第三届国民视觉健康高峰论坛上分享了一组数据,2020年,我国儿童青少年总体近视率为52 7%,其中6岁儿童为14 3%,小学生为35 6%,初 更多
2021-10-08 07:54:47
-
-
兴昌塑胶拟减持不超1%股份 大股东减持曾重挫股价
股东减持出现新理由,要借给上市公司无偿使用。9月29日晚间,高乐股份(002348)披露称,公司实控人之一兴昌塑胶五金厂有限公司(以下简称兴昌 更多
2021-09-30 08:43:16
-
-
”酱油三剑客“股价都在涨 股价再度突破百元大关
9月26日晚间,海天味业公告:由于今年以来各主要原材物料、运输、能源等成本持续大幅上涨,给经营带来了一定的挑战,近期正在评估是否对产 更多
2021-09-28 07:50:33
-
-
“丝绸文创第一股”来了!万事利发行价格为5.24元
9月22日,以丝绸文化创意领先的杭州丝绸品牌万事利登陆A股创业板。万事利(301066)发行价格为5 24元 股,截至9月24日,最新股价为24 18元, 更多
2021-09-26 07:51:26
-
-
组团减持后股价大跌 百亚股份跌逾8%
卫生巾第一股百亚股份(003006)股东组团减持不超过公司10%股份的消息果然影响了公司9月22日的股价。截至9月22日收盘,百亚股份股价大跌8 02% 更多
2021-09-23 08:07:23
财经热图
-
今日必看
- 精彩话题