您的位置:首页
如何将exe注册为windows服务,直接从后台运行
2017-12-09 09:35
585 查看
方法一:
使用windows自带的命令sc 使用sc create 方法创建。
如:sc create CaptureScreen binpath= F:\zwmei-project\decklink-learning\OutputBitmap\Debug\OutputBitmap.exe type= own start= auto displayname= Screen_Capture
其中 CaptureScreen为服务名,可以在系统服务中找到,(通过在命令行运行services.msc打开系统服务)。binpath为你的应用程序所在的路径。 displayname为服务显示的名称,这个在注册表中可以找到,(通过在命令行中输入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的服务,那么我们自己的exe该放在哪呢。下面我们打开注册表 找到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帮助启动.
使用windows自带的命令sc 使用sc create 方法创建。
如:sc create CaptureScreen binpath= F:\zwmei-project\decklink-learning\OutputBitmap\Debug\OutputBitmap.exe type= own start= auto displayname= Screen_Capture
其中 CaptureScreen为服务名,可以在系统服务中找到,(通过在命令行运行services.msc打开系统服务)。binpath为你的应用程序所在的路径。 displayname为服务显示的名称,这个在注册表中可以找到,(通过在命令行中输入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的服务,那么我们自己的exe该放在哪呢。下面我们打开注册表 找到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帮助启动.
相关文章推荐
- 如何将exe注册为windows服务,直接从后台运行
- 如何将应用程序exe注册成服务,直接从后台运行,如何删除windows服务
- 如何将exe注册为windows服务,直接从后台运行
- 如何将某个exe注册为windows服务,直接从后台运行
- 如何将某个exe注册为windows服务,直接从后台运行
- 如何将应用程序exe注册成服务,直接从后台运行
- 如何将应用程序exe注册成服务,直接从后台运行
- VS2010+OpenCV 项目生成EXE文件如何在其他电脑上直接运行
- VS2010+OpenCV 项目生成EXE文件如何在其他电脑上直接运行
- 【QT开发】QT在windows下的exe应用程序如何在别人的电脑上直接运行
- 如何将VC++程序纯净打包(VS2013+OpenCV 2.4.9项目生成EXE文件如何在其他电脑上直接运行)
- 如何让bat,cmd文件后台运行?如何把文件打包成EXE?
- SAP BPC最佳实践-如何后台直接运行Data Manager包
- Linux中如何让命令在后台运行
- How to add a exe application run as a service(如何将一个可执行程序当作服务运行)?
- c++ builder 2009如何生成独立运行exe(转)
- Linux中如何让进程在后台运行
- 如何查看一个运行的exe执行程序需要有哪些DLL动态链接库
- android 后台进程被强杀 如何在快速切换正确的运行程序
- 如何在sublime3中直接运行python