用 vs2013 创建 windows service 程序

时间:2021-09-13 05:38:18

windows services 是运行在后台的服务程序,可以用 vs2013 来创建,创建的步骤如下:

1.打开 vs2013 , Files -->New Project --> windows-->windows service  在本示例中的名称为: WindowsServiceDemon 如下图所示 

用 vs2013 创建 windows service 程序

2.创建好的项目的解决方案如下:

用 vs2013 创建 windows service 程序

Program.cs 是程序的入口处,里面包含程序的入口方法,Servicel.cs 是服务类文件,里面包含服务的内容,所有的逻辑都在这里,Services.cs 包含两部分:一部分是Designer 可视化设计界面,可以在这里添加各种组件,另一部分是代码文件,里面主要写逻辑,默认包含3个方法:OnStart、OnStop 和构造函数,还可以添加 OnPause 和 OnContinue 方法,在构造函数里,设置服务的名称:

base.ServiceName="wisdomhu";

用 vs2013 创建 windows service 程序

Services1.cs 完整的代码如下:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks; namespace WindowsServiceDemon
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent(); // 构造函数
base.ServiceName = "wisdomhu";//设置服务名称,与后面的安装服务名称要一致 } protected override void OnStart(string[] args)
{
//TODO 服务启动时的相关逻辑
} protected override void OnStop()
{
//TODO 服务停止时的相关逻辑
}
}
}

Services.cs

3.双击 Services1.cs文件,进入设计页面,在空白处单击鼠标右键--> Add Installer (添加安装器)

用 vs2013 创建 windows service 程序

添加完后,页面上会显示两个标签,

用 vs2013 创建 windows service 程序

单击选中 serviceProcessInstaller1,鼠标右键 -->Properties (显示属性) 在右侧的属性栏中,修改属性值,将Account 属性设置成 localSystem,这是服务的类型

用 vs2013 创建 windows service 程序

4. 按照上面的步骤,设置 serviceInstaller1 的属性,其中 DelayedAutoStart 表示是否延迟启动,Descirption 表示:服务的说明文字 ,DisplayName 表示: 服务的显示名称,ServicesDependOn 表示:服务所依赖的其它服务项,StartType 表示: 服务的启动类型: 自动、手动、禁止, Partent表示:服务所依赖的父服务 , ServicesName 表示: 服务的名称,服务的名称要与在第二步代码中设置的服务的名称一致。

5.对项目进行编译,并持备 bin-->debug 下的所有文件 到 自己指定的文件夹中,这里的文件夹名称是: WindowsServicesDemon

6. 在 WindowsServicesDemon 文件夹中,分别添加两个文件: Installer.bat 和 UnInstaller.bat (可通过文本编辑器来添加)它们分别表示:服务的安装和服务的卸载,其中的内容分别是:

%~dp0InstallUtil.exe %~dp0WindowsServiceDemon.exe
pause
%~dp0InstallUtil /u %~dp0WindowsServiceDemon.exe
pause

注: 开头一定要留 %~dp0  符号,表示将目录更改为当前目录,如果不加,可能会出错。

7. 从 C:\Windows\Microsoft.NET\Framework\v4.0.30319 找到 InstallUtil.exe 和 InstallUtil 文件,并把这两个文件拷备到 第 5步所创建的文件夹中,这里是 WindowsServicesDemon ,然后 选 中 Installer.bat 文件,以管理员的方式运行,如果一切正常,将会看到这样的结果:

用 vs2013 创建 windows service 程序

服务已经成功安装,打开 服务,将会看到,刚才安装的 wisdomhu 服务

用 vs2013 创建 windows service 程序

若要卸载服务时,只要以管理员的方式运行 UnInstaller.bat 就可以了。

用 vs2013 创建 windows service 程序的更多相关文章

  1. VS2010 创建 windows service 程序

    参考网上保护眼睛程序,自写程序如下. 1.创建一个名词为“CareEyeService”,类型为“WindowsService”的应用程序. 自动生成代码如下图: 2.修改ServiceCareEye ...

  2. C#Windows Service程序的创建安装与卸载

    C#Windows Service程序的创建安装与卸载 一.开发环境 操作系统:Windows7x64 sp1 专业版 开发环境:Visual studio 2013 编程语言:C# .NET版本: ...

  3. C# 创建Windows Service(Windows服务)程序

    本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建一个Windows Service 1)创建Windows Service项目 2 ...

  4. C#创建Windows Service(Windows 服务)基础教程

    Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...

  5. VS2013创建Windows服务 || VS2015+Windows服务简易教程

    转自:https://www.cnblogs.com/no27/p/4849123.htmlhttps://blog.csdn.net/ly416/article/details/78860522 V ...

  6. 创建Windows Service

    基本参照使用C#创建Windows服务,添加了部分内容 目录 创建Windows Service 可视化管理Windows Service 调试 示例代码 创建Windows Service 选择C# ...

  7. 跟我学Windows Azure 三 使用vs2013创建windows azure web site

    首先我们需要登陆我们的windows azure上,然后访问 https://manage.windowsazure.cn/publishsettings/index 他会让我们下载我们的订阅证书文件 ...

  8. C# 创建Windows Service

    当我们需要一个程序长期运行,但是不需要界面显示时可以考虑使用Windows Service来实现.这篇博客将简单介绍一下如何创建一个Windows Service,安装/卸载Windows Servi ...

  9. .NET开发Windows Service程序 - Topshelf

    在实际项目开发过程中,会经常写一些类似定时检查,应用监控的应用.这类应用在windows平台通常都会写成window service程序. 在百度上搜索一下'c#开发windows service', ...

  10. 目前.NET Core创建Windows Service比较好的一个开源框架:DasMulli.Win32.ServiceUtils

    新建一个.NET Core控制台程序,搜索并下载Nuget包:DasMulli.Win32.ServiceUtils GitHub 链接及使用指南 Write a windows service us ...

随机推荐

  1. jquery的animate({})动画整理

    在网页制作的过程中少不了用到各种动画,形式多种多样,flash,css,js,canvas,等等都能实现,对于其优劣和效果只能说各有千秋. 什么是动画效果,其实网页中的渐变效果就是一种很基础的动画,动 ...

  2. 基于ajax与msmq技术的消息推送功能实现

    周末在家捣鼓了一下消息推送的简单例子,其实也没什么技术含量,欢迎大伙拍砖.我设计的这个推送demo是基于ajax长轮询+msmq消息队列来实现的,具体交互过程如下图: 先说说这个ajax长轮询,多长时 ...

  3. [转]as3中的SharedObject的保存路径

    SharedObject的保存路径 Windows XP 网络访问: C:\Documents and Settings\[你的用户名]\Application Data\Macromedia\Fla ...

  4. [一个经典的多线程同步问题]解决方案三:互斥量Mutex

    本篇通过互斥量来解决线程的同步,学习其中的一些知识. 互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问.互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源.使用互 ...

  5. 在web项目中使用cxf开发webservice,包含spring支持

    本文主要介绍了,如何使用cxf内置的例子,学会开发webserivce,在web项目中使用,且包含spring支持. webserivce的开发可以使用cxf或者axis,好像还有httpclient ...

  6. jqGrid 使用心得

    参考: https://blog.csdn.net/u012411219/article/details/51315419 https://www.cnblogs.com/kissdodog/p/38 ...

  7. SpringBoot实现跨域

    一.什么是跨域请求? 跨域请求,就是说浏览器在执行脚本文件的ajax请求时,脚本文件所在的服务地址和请求的服务地址不一样.说白了就是ip.网络协议.端口都一样的时候,就是同一个域,否则就是跨域.这是由 ...

  8. 知名公司的GitHub地址

    GoogleGoogle[https://github.com/google]( https://github.com/google) Google Sampleshttps://github.com ...

  9. nginx+uwsgi+djangos部署项目完整

    1.基本信息 Linux 版本:SentOS7.4 Python 版本:3.7.1 2.下载 uWSGI pip3 install uwsgi uwsgi 主要的任务是座位分发路由的服务器. 先写一个 ...

  10. 20155233 《网络对抗》Exp7 网络欺诈技术防范

    应用SET工具建立冒名网站 1.要让冒名网站在别的主机上也能看到,需要开启本机的Apache服务,并且要将Apache服务的默认端口改为80,先在kali中使用netstat -tupln |grep ...