大家好,又见面了,我是你们的朋友全栈君。
srvany.exe是什么?
srvany.exe是Microsoft Windows ResourceKits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。
如何获取?
你可以通过下载并安装Microsoft Windows ResourceKits,也可以在此下载:http://download.csdn.net/detail/generalhking/5381805
如何使用?
将srvany.exe和instsrv.exe拷贝到C:\Windows\System32\后,我们可以通过下面的命令行进行srvany.exe的服务安装:
instsrv ServiceNameC:\Windows\System32\srvany.exe
ServiceName即你自己定义的服务名称,可以是要作为系统服务启动的应用程序的名称。
安装完毕后,我们需要对srvany.exe进行配置,以便于能够加载我们指定的程序,配置的方法是,开始 – 运行 -regedit,打开注册表,定位到下面的路径。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
同样的ServiceName是你刚才安装服务时自定义的服务名称。
如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的程序地址。
名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。
比如这里是个配置实例,我们这里配置的服务名称是NGINX,其余是nginx的安装配置情况。
1 2 3 4 5 6 |
Windows Registry Editor Version 5.00 |
什么是服务程序?
服务程序是指遵循微软的服务程序开发规范开发出来的特殊程序,这类程序和普通程序相比最大的特点是可以被系统作为服务启动,服务程序和普通程序都可以是自己开发的程序,普通程序不能直接作为服务程序启动,否则服务启动会报错,所以srvany.exe就是为解决这个问题而诞生的,srvany.exe本身是作为服务程序而开发的,其是遵循服务程序开发规范的,所以可以被系统作为服务程序启动,然后srvany.exe会根据注册表的配置参数启动你所设定的普通程序,所以进程列表会有两个一个是srvany.exe另一个是你的普通EXE程序,注意它们都是以SYSTEM账户启动的,如果srvany.exe服务被停止,那么相应的普通程序也会被srvany.exe停止,这样就将普通程序模拟出服务程序的功能了。
一般情况下不建议将有窗体的程序作为服务程序运行,如果服务程序启动时,想隐藏程序窗体或者控制台窗口,可使用下述方法:
开始,运行,输入services.msc,打开服务管理器,找到你设置的那个服务项,右击属性,切换到“登录”选项卡,然后去勾选“允许服务与桌面交互”。
转自:http://blog.sina.com.cn/s/blog_767a3aa701015mtq.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132298.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...