Windows 程序注册成服务的方法

将windows 程序注册成服务这个是很多后台程序需要实现的功能,注册成服务后,你的程序就可以像windows 服务一样随系统启动,并且隐藏你的控制台界面。下面介绍一个网上流传最广泛的方法。就是Instsrv.exe + Srvany.exe .

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

第一步:编写好我们的控制台程序 .

namespace showlog
{
class Program
{
static void Main(string[] args)
{
while(true)
{
FileStream fs = new FileStream("E:\\ak.txt", FileMode.OpenOrCreate|FileMode.Append);
//获得字节数组
byte[] data = System.Text.Encoding.Default.GetBytes("Hello World!");
//开始写入
fs.Write(data, , data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
Thread.Sleep();
} }
}
}

改程序是循环在E 盘写文件。

第二步:编辑注册表,好让系统启动我们的程序。配置的方法是,开始 - 运行 - regedit,打开注册表,定位到下面的路径。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName

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

  名称 Application 值为你要作为服务运行的程序地址。

  名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。

名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。

工程实施的时候手动添加肯定是很头疼的一件事,所以我们写一个reg 文件。

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ShowLog\Parameters]
"Application"="C:\\Users\\lining\\Desktop\\Debug\\showlog.exe"
"AppDirectory"="C:\\Users\\lining\\Desktop\\Debug"
"AppParameters"=""

这个文件双击就可以进行自动添加注册表了。

第三步:注册服务。

我们需要把instsrv.exe 和 srvany.exe 拷贝至system32 目录下(64位拷贝到syswow64目录下)

安装方法:instsrv ServiceName C:\Windows\System32\srvany.exe

卸载方法:instsrv ServiceName remove

现在我们这这些过程写进批处理文件Install.bat,就不用我们一个一个的敲命令了。

@echo off
echo move file...
set curDir=%~dp0
set chargereg=%curDir%showlog.reg copy %curDir%instsrv.exe c:\\windows\\SysWOW64\\instsrv.exe
copy %curDir%srvany.exe c:\\windows\\SysWOW64\\srvany.exe echo reg ...
start %chargereg%
choice /t /d y /n >nul
echo create service ...
start c:\windows\SysWOW64\instsrv.exe ShowLog c:\windows\SysWOW64\srvany.exe
choice /t /d y /n >nul
net start ShowLog
echo install program will exit after three seconds
choice /t /d y /n >nul

“choice /t 2 /d y /n >nul”这句命令的目的是让程序暂停2秒钟。

当然卸载服务Uninstall.bat就很简单了,双击卸载该服务

@echo off
echo ShowLog.
net stop ShowLog
choice /t /d y /n >nul
start c:\windows\SysWOW64\instsrv.exe ShowLog remove
echo uninstall program will exit after two second
choice /t /d y /n >nul

Windows 程序注册成服务的方法的更多相关文章

  1. Spring Boot项目生成jar包,并在windows服务器中注册成服务,开机启动

    背景: 使用Spring Boot开发的Web项目,打包生成了一个jar包,希望能部署在Windows服务器中 尝试: 1.Spring Boot生成的jar包,可以直接用java -jar运行,但是 ...

  2. 怎样把任意exe程序注册成windows系统服务(手动注册服务)

    1. 要实现这个功能要用到微软提供的两个小工具“instsrv.exe”和“srvany.exe”(下载地址:http://www.cr173.com/soft/64394.html). 先下载这两个 ...

  3. Windows Server下把BAT批处理注册成服务在后台运行且注销后能正常运行

    批处理有如下特点: 1.登录到当前窗口运行时,如果关闭控制台会连同启动的程序一起关闭. 2.如果是以start /b的形式启动,那么同样也是在控制台关闭后者注销当前窗口也会一起关闭. 3.如果以vbs ...

  4. 把任意exe程序注册成windows系统服务

    某gae代理软件每次开机都需要手动启动,就算添加成开机启动项,在win8.1下权限的管理更加严格,开机时并不能成功启动软件(无人值守时开机),因此在网上搜索把exe注册成系统服务的办法,找到论坛两个帖 ...

  5. 怎样把exe程序注册成系统服务

    怎样把exe程序注册成系统服务 最近一段时间我们公司开发一款新的产品,要在服务器上运行一个服务端程序,为了方便我就希望能将这个程序注册成系统服务开机自动启动而不用每次重启系统都要手动启动程序.要实现这 ...

  6. WCF之Windows宿主(可安装成服务自动并启动)

    WCF之Windows宿主(可安装成服务自动并启动) 创建解决方案WCFServiceDemo 创建WCF服务库(类库或WCF服务库)WCFService  ,添加引用System.ServiceMo ...

  7. 使用NSSM把任意exe程序注册成Windows服务

    1.登录NSSM官网下载最新版本: http://www.nssm.cc/download 2.解压之后可以看到win32和win64位的nssm.exe,根据自己的电脑选择使用 3.拷贝一份nssm ...

  8. 将BAT文件注册为服务的方法

    一.什么是instsrv.exe和srvany.exe instsrv.exe.exe和srvany.exe是Microsoft Windows Resource Kits工具集中 的两个实用工具,这 ...

  9. 把解压缩版的tomcat6注册成服务并设置自启动

    操作步骤: 1.在“开始 ”→“运行 ”中输入cmd 命令,进入MS-DOS界面 2.cd 到tomcat的bin目录下       C:/> cd tomcat/bin 3.运行命令servi ...

随机推荐

  1. Jmeter(十三)用Jmeter自带录制工具代理录制手机端应用脚本APP脚本

    JM 菜单栏(即编辑下面的绿色按钮),Templates -->Select Template 选择 Recording -->create: 然后在工作台 (WorkBench)下面的H ...

  2. 【ESP8266】发送HTTP请求

    一.ESP8266简介 ESP8266 是深圳安信可科技有限公司开发的基于乐鑫ESP8266的超低功耗的UART-WIFI模块的模组,可以方便进行二次元开发,接入云端服务,实现手机3/4G全球随时随地 ...

  3. Lniux下安装mysql----编译版

    ####安装mysql-5.7.10rpm -e --nodeps mysqlrpm -e mysqlclient10useradd -g mysql -s /sbin/nologininstall_ ...

  4. HelloGitHub.com 网站开源了

    简介 随着 HelloGitHub 月刊持续更新了一年多,内容变的越来越多.因为内容数据没有结构化,如果还是使用之前的编辑文本的方式编辑月刊内容,会对后面的继续发刊和维护带来了很多问题和多余的工作,例 ...

  5. java基础06 IO流

    IO用于在设备间进行数据传输的操作. Java IO流类图结构:   IO流分类 字节流: InputStream FileInputStream BufferedInputStream Output ...

  6. 关于"模块计算机类型与目标计算机类型冲突"的解决

    问题描述:我的64位工程包含32位静态库之后报错(模块计算机类型"x86"与目标计算机类型"x64"冲突),将工程修改为32位之后,又报错(若干个无法解析的外部 ...

  7. STF,docker学习资料整理

  8. 发票OCR识别/票据OCR自动识别

    对于一些大的集团公司来说,分散式财务管理模式管理效率不高,管理成本相对较高,同时也制约了集团企业发展战略的实施,因而需要建设财务共享中心.一个企业想建造财务共享中心,面临的难题是大量的数据采集和信息处 ...

  9. Verilog HDL常用综合语法

    前面已经记录了一些组成Verilog的基本组成,可以用这些基本组成来构成表达式.这一节,就来记录一下把这些表达式构成一个文件的各种行为描述语句. ①这里用Verilog基本要素进行的行为描述主要是针对 ...

  10. 基于.net的微服务架构的开发测试环境运维实践

    眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...