基于Windows实现应用程序以服务方式自动运行的几种方式

竹林之风2周前 (11-19)技术积累26

        在Windows平台上要让一个应用程序自动运行,有如下几种方式:①at命令、schtasks命令、计划任务或组策略等;②开始菜单的启动文件夹;③注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run或HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run;④Windows服务;⑤其它方式。前三种方式都需要Windows登录后才会自动运行,Windows服务支持登录前就自动启动。本文仅讨论将应用程序注册为Windows服务的途径。

        1、各种语言或平台本身支持创建Windows服务项目,如.NET Framework支持创建Windows服务应用程序,通过.NET Framework自带的服务注册工具InstallUtil.exe来注册。

        2、通过sc create等组合命令来创建Windows服务:

            sc boot sc config sc continue sc control sc create sc delete sc descrīption sc enumdepend

            sc failure sc getdisplayname sc getkeyname sc interrogate sc lock sc pause sc qc

            sc qdescrīption sc qfailure sc query sc queryex sc querylock sc sdset sc sdshow

            sc start sc stop

        3、通过nssm第三方软件来实现Windows服务的创建、移除等操作:NSSM - the Non-Sucking Service Manager

        4、通过Topshelf第三方服务框架来实现Windows服务的创建、移除等操作:Topshelf (topshelf-project.com)

        5、利用instsrv和srvany安装Windows服务:instsrv.exe&srvany.exe

        (1)修改注册表,将真正要自动运行的应用程序文件名和目录设置号:

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NginX\Parameters]
"Application"="E:\\nginx-1.12.0\\nginx.exe"
"AppDirectory"="E:\\nginx-1.12.0\\"

        (2)使用instsrv将srvany注册为Windows服务:

E:\nginx-1.12.0\instsrv NginX E:\nginx-1.12.0\srvany.exe

       (3)srvany会通过第一步注册表设置启动真正要自动运行的应用程序。

       (4)卸载服务方式:

E:\nginx-1.12.0\instsrv NginX remove

        6、其它方式。

标签: Windows服务
返回列表

上一篇:.NET Framework下调用jar包

没有最新的文章了...

相关文章

在线支付子模块的设计与实现

        一个在线交易系统需要各种支付方式方便客户付款,这些支付方式按场景可分为在线支付和线下现付。线下现付常见的...

.NET Framework下调用jar包

        jar包通常能被JAVA直接调用,但当我们不希望使用JAVA而在.NET Framework下调用jar...

实现网页原路返回:从哪个页面跳转过来就返回哪个页面

一、需求        导航对于PC网站或WAP网站有着相当重要的作用,它有利于提升用户体验,不至于让用户迷路。而“返回...

Android开发从新手开始(一)——概述

前言        做为一个程序员,不应该将自己限定在自己熟悉的平台和语言上,而也应该多去了解一下其它平台和语言。这样可...

使用Nginx实现简单密码认证

        假设一个网站没有实现登录认证功能,我们要临时增加一个简单的账号密码认证,可以使用Nginx来实现该功能。...

SVN源码版本控制目录方案

        SVN的目录规划:(1)trunk:主干目录,用于存放当前正在开发和维护中的源码版本,这是一个进行日常开...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法和观点。