使用srvany.exe将程序安装成windows服务的详细教程
srvany.exe介绍
srvany.exe是Microsoft Windos Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windos服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。
资源下载
你可以通过下载并安装Microsoft Windos Resource Kits 获得或者直接在本文下载。
示例中的控制台程序仅仅是向当前路径不停的写入时间。
srvany 打包下载地址 测试程序,测试程序(含控制台项目)
instsrv.exe srvany.exe 打包(可将程序安装成indos服务)
- 类型系统辅助
- 大小49KB
- 语言简体中文
- 时间2013-09-24
如何使用
当你获取到srvany后并决定将某程序作为服务启动后,请先将srvany安装为系统服务,具体的安装方法有很多,这里使用instsrv,语法如下
安装 instsrv ServiceName C:\Windos\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已经安装成indos服务了,在Windo服务项中即可查看。
本文不会仅仅是照搬文章,最近在学习批处理,将其中的操作使用批处理来完成。
批处理说明
1. run-install.bat 封装了安装服务的操作(上面有提到)。需要传入参数有服务名称,程序名称。
@echo off rem 参数依次为 服务名称 可执行文件名称 @echo 服务名称:%1 @echo 程序名称:%2 rem 定义需要运行的程序路径 set curExe=%~dp0%2 rem 定义注册表路径 set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\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 注册表添加完成
2.install.bat 命令含义进入当前目录,调用当前目录下的run-install.bat文件,并传入参数,完成服务安装。服务名MyService 执行程序Console.exe
@echo off cd /d %~dp0 call run-install.bat MyService Console.exe pause
3.run-del.bat 简单封装了卸载服务的操作,传入服务名称即可。
@echo off rem 参数依次为 服务名称 @echo 服务名称:%1 rem 进入当前目录 cd /d %~dp0 rem 卸载引导服务 instsrv %1 remove
4.del.bat 命令含义进入当前目录,调用当前目录下的run-del.bat文件,并传入参数,完成服务卸载。服务名MyService
@echo off cd /d %~dp0 call run-del.bat MyService pause
1.按照以上操作即可轻松将程序添加到系统服务中去。
2.使用场景为,该程序需要开机启动,而且是在Windo未登录的情况下。(常规的开机启动应用程序需要输入机器用户名、密码进入到桌面后才启动)
3.将程序部署成服务后,该程序依然可以双击启动,如果不需要,建议将程序中添加命令行参数判断来禁止双击启动该程序。
4.在服务的属性中,可以设置其与桌面进行交互,此时Windo会提示交互式消息提示,点击后即可显示程序窗体。
5.如果你的程序是做成安装包,调用安装服务的批处理和调用卸载服务的批处理,则可以放在安装程序和卸载程序的时候去执行,简化用户操作。
办公软件
- 星梭低级格式化工具怎么用 星梭低级格式化工具
- 电脑流量监控软件 电脑流量监控软件下载
- 造梦西游3大闹天庭篇修改器 造梦西游3大闹天庭
- 华尔街英语学习软件 华尔街英语咋样
- photoshop绿色精简版 photoshop绿色版本
- 卓讯企业名录搜索软件 卓讯资讯
- 名贯四海起名软件 名贯四海起名测名软件免费下
- 股城模拟炒股软件 炒股模拟游戏app
- 诺顿手机安全软件 诺顿安卓下载
- 速读训练软件 速读训练软件哪个好
- 双核补丁智能安装包 intel双核补丁
- 日程管理软件 日程管理软件推荐
- 魔法桌面美化王 魔法桌面美化王怎么用
- 智能陈桥五笔 智能陈桥五笔最新版
- 小灰熊字幕制作软件 小灰熊字幕制作软件字幕置
- 手机飞信软件 手机微信软件怎么隐藏起来