srvany.exe是什么?

srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。

使用方法

当你获取到srvany后并决定将某程序作为服务启动后,请先将srvany安装为系统服务,具体的安装方法有很多,比如说可以通过Microsoft Windows Resource Kits中另外一个实用的小工具instsrv.exe进行安装,将srvany.exe和instsrv.exe拷贝到C:\Windows\System32\后,我们可以通过下面的命令行进行srvany.exe的服务安装:

instsrv ServiceName C:\Windows\System32\srvany.exe

ServiceName即你自己定义的服务名称,可以是要作为系统服务启动的应用程序的名称。

安装完毕后,我们需要对srvany.exe进行配置,以便于能够加载我们指定的程序,配置的方法是,开始 – 运行 – regedit,打开注册表,定位到下面的路径。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName

同样的ServiceName是你刚才安装服务时自定义的服务名称。

如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。

名称 Application 值为你要作为服务运行的程序地址。
名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。

比如这里是个配置实例,我们这里配置的服务名称是NGINX,其余是nginx的安装配置情况。

当然还有一个比较简单的做法,那就是将下面的文本保存为*.reg文件,然后双击导入注册表。

1
2
3
4
5
6
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服务名称\Parameters]
"Application"="值为你要作为服务运行的程序地址"
"AppDirectory"="值为你要作为服务运行的程序所在文件夹路径"
"AppParameters"="值为你要作为服务运行的程序启动所需要的参数"

如果将某窗体程序通过srvany作为服务运行的时候,桌面右下角图标和窗体无法显示,这个就涉及到服务的运行方式了,一般服务程序是不包含窗体的,所以系统默认可能会抑制这些服务程序产生的窗体,如果你的服务程序比较特殊,确实需要出现窗体,可以参考下面的办法:

控制面板 – 管理工具 – 服务(或者 开始 – 运行 – services.msc 确认)打开服务管理器,选择你刚刚安装并需要展示窗体的服务,然后右击选择属性,切换到 “登录” 选项卡,勾选上 “允许服务与桌面交互” 然后按确定保存,重启你的服务,看看窗体是否出现了。

srvany把程序作为Windows服务运行的更多相关文章

  1. 黄聪:使用srvany.exe将任何程序作为Windows服务运行

    srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说sr ...

  2. 使用srvany.exe将任何程序作为Windows服务运行

    使用srvany.exe将任何程序作为Windows服务运行 2011 年 3 月 7 日 !本文可能 超过1年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使 ...

  3. 把java程序作为windows服务运行

    参考: https://www.jianshu.com/p/fc9e4ea61e13 https://blog.csdn.net/qq_28566071/article/details/8088250 ...

  4. .NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署

    日常工作中有时候会遇到需要将程序直接在服务器上运行,而不依赖于 IIS 托管的情况,直接运行有两种方式,一种是部署为 服务模式,另一种则是 直接启动 .NET 发布之后的 exe 文件以 控制台模式运 ...

  5. 如何把一个c语言程序做成windows服务开机自启动

    原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后 ...

  6. 如何注册java程序为windows服务

    如何注册java 程序为windows 服务 最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在 ...

  7. .NET Worker Service 作为 Windows 服务运行及优雅退出改进

    上一篇文章我们了解了如何为 Worker Service 添加 Serilog 日志记录,今天我接着介绍一下如何将 Worker Service 作为 Windows 服务运行. 我曾经在前面一篇文章 ...

  8. pm2以windows服务运行

    借助于pm2-windows-service 可以把pm2以windows服务运行.已服务运行的好处就是,即时用户注销也,pm2也会在后台运行 npm i pm2 -g npm i pm2-windo ...

  9. 注册nodejs程序为windows服务

    转载地址:http://www.grati.org/?p=236 应lemonhall要求,写一篇在windows中部署nodejs程序的文章,并提供了how to node上 “deploying- ...

随机推荐

  1. MiniUI 在线示例

    引用 http://miniui.com/demo/#src=datagrid/celledit.html

  2. JQuery UI 入门

    1. JQuery UI 概述 1.1 JQuery UI 主要分为三部分: 交互部件(interactions):是一些与鼠标交互相关的内容; 小部件(widgets): 主要是一些页面的扩展; 效 ...

  3. python函数回顾:dict()

    描述 dict() 函数用于创建一个字典. 语法 dict 语法: class dict(**kwarg) class dict(mapping, **kwarg) class dict(iterab ...

  4. 我的Android进阶之旅------>Android知识图谱

    Android知识图谱,快来看看哪方面有漏洞? 该图转自:http://blog.csdn.net/xyz_lmn/article/details/41411355

  5. 006-搭建框架-实现AOP机制【三】AOP技术

    2.3.spring+aspectj Spring在集成了aspectj后,同时也保留了以上的切面与代理的配置方式. 将Spring与aspectj集成与直接使用aspectj不同,不需要定义Aspe ...

  6. 《Python数据分析》笔记——数据可视化

    数据可视化 matplotlib绘图入门 为了使用matplotlib来绘制基本图像,需要调用matplotlib.pyplot子库中的plot()函数 import matplotlib.pyplo ...

  7. Quartz使用总结(转发:http://www.cnblogs.com/drift-ice/p/3817269.html)

    Quartz可以用来做什么? Quartz是一个任务调度框架.比如你遇到这样的问题 想每月25号,信用卡自动还款 想每年4月1日自己给当年暗恋女神发一封匿名贺卡 想每隔1小时,备份一下自己的爱情动作片 ...

  8. Win8.1和office2013使用电话激活步骤

    Win8.1和office2013使用电话激活步骤: 先从Win8.1贴吧的最后几个回复中找到几个密钥,最后的通常是最新的,然后输入到Win8.1中,会提示你密钥无效,如果有效你就走了狗屎运了,无效的 ...

  9. django 操作前端数据

    django 利用json处理前端页面数据,FLASK当中也同样   def create_company(request):if request.user.is_superuser:custom_l ...

  10. selenium网页没加载完成就停止加载并自动刷新

    判断一个网页10秒没加载完成就停止加载并自动刷新 driver=webdriver.Chome() driver.set_page_load_timeout(10) while True: try: ...