将exe注册为windows服务,直接从后台运行

方法一:

使用windows自带的命令sc 使用sc create 方法创建。例如

sc create fzuu binpath= e:\ninian.exe type= own start= auto displayname= ninian

其中fzuu为服务名,可以在系统服务中找到,(通过在命令行运行 services.msc 打开系统服务)。binpath为你的应用程序所在的路径。 displayname为服务显示的名称,这个在注册表中可以找到,(通过在 cmd 命令行中输入 regedit 打开注册表,在 HKEY_LOCAL_MACHINE — SYSTEM — CurrentControlSet 下找到你的服务显示名,或者打开注册表后直接搜索你的服务名)

注意:在sc命令中,=号前面不能有空格,而=号后面必须有一个空格,切记。另外要以管理员的身份打开命令行。

这种方法不一定能成功,如果你的exe不符合服务的规范,可能会启动失败。下面我们讨论第二种方法

 

方法二:

在第一种方法失败的情况下,我们可以使用 instsrv.exe和srvany.exe 两个小工具为我们分忧解难

我们可以下载instsrv.exe 和 srvany.exe 然后放到自己的文件夹中,可以将文件夹放入C盘(文件已上传附件)

下面我们开始注册服务。

以管理员的身份运行命令行,首先进入工具所在的文件夹,如:c:\tools,然后执行

c:\tools\instsrv.exe ServerName c:\tools\srvany.exe

这样我们就创建了一个名为ServerName的srvany的服务

下面我们打开注册表,找到ServiceName这个服务(位置在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下)

然后右键 新建 项,名称为Parameters。单击该项,然后在右边新建两个字符串值。

第一个名为Application,值为:应用程序路径,如:c:\myApp.exe

第二个名为AppDirectory,值为:应用程序所在目录,如:c:\

接下来我们进入系统服务,找到ServiceName这个服务,双击进入它的属性。设置允许与桌面交互。然后启动服务。 至此我们完成了将exe注册为服务的过程。

下面我们分析一下: instsrv.exe可以创建和删除服务,然而如果没有srvany.exe的参与,创建的服务可能无法启动。

那么srvany.exe做了些什么呢,启动服务后我们可以在任务管理器中找到我们的服务,然后右击服务,选择转到进程,(如果进程中没有任何项被选中,则点击下面的显示所有用户进程,然后重新选择转至进程),我们看到的是srvany.exe,而不是我们自己的exe。原来我们的exe成为了它的一个子项,由srvany.exe帮助启动

本站声明:
1、如有下载链接失效后,请联系管理员告知。
2、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持!
3、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
4、本文由 [ 非正资源网 ] 整理自网络,如有侵权请联系本站删除!邮箱:y@ycb.hk
非正资源网(www.fzuu.cn) » 将exe注册为windows服务,直接从后台运行