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

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

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

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

base.ServiceName="wisdomhu";

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 (添加安装器)

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

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

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 文件,以管理员的方式运行,如果一切正常,将会看到这样的结果:

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

若要卸载服务时,只要以管理员的方式运行 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. .NET 6学习笔记(2)——通过Worker Service创建Windows Service

    通过Visual Studio中的Windows Service模板,我么可以创建.NET Framework版本的Windows Service,网络上对此已有详细且丰富的各路教程.但在我们升级到. ...

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

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

  9. C# 创建Windows Service

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

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

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

随机推荐

  1. 使用水晶报表更新后出现“值不能为 null。 参数名: inputString”

    简单记录一下: 如果更新完水晶报表相关页面可能在原来页面刷新会出现错误:"值不能为 null. 参数名: inputString",如图:

  2. windows mobile 共享PC网络(win7)

    win7系统安装windows mobile,将设备插入底座后,设备并不能直接共享pc的网络直接上网.原来,当插入底座后,需要打开mobile设备中心,切换一下连接网络,或者打开此窗体后确定一下,即可 ...

  3. php全角字符转换为半角函数

    <?php /** * 全角字符转换为半角 * * @param string $str * @return string public function Sbc2Dbc($str) { $ar ...

  4. HDU 2516 取石子游戏(斐波那契博弈)

    取石子游戏 Time Limit: 2000/1000 MS(Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...

  5. codeforces 439 E. Devu and Birthday Celebration 组合数学 容斥定理

    题意: q个询问,每一个询问给出2个数sum,n 1 <= q <= 10^5, 1 <= n <= sum <= 10^5 对于每一个询问,求满足下列条件的数组的方案数 ...

  6. c++学习-数组

    int a[10]; //是个元素,在windows下回报错,linux会输出一个随机数 int a[10]={1,2}; //初始化,其他的为0 数组越界: 为了调高效率, 编译器不会对数组越界做检 ...

  7. SharedPreferences实现自动登录记住用户名密码

    最近Android项目需要一个自动登录功能,完成之后,特总结一下,此功能依靠SharedPreferences进行实现.   SharedPreferences简介 SharedPreferences ...

  8. 4 c#

    /直接小写transform表示获取当前脚本所挂载的游戏对象身上的Transform组件 Vector3 p= transform.position;//     transform组件上的位置属性 ...

  9. 【weiphp微信开发教程】留言板插件开发详解

    基于weiphp框架的留言板插件教程: 1.功能分析 传统的留言板应该具有发布留言.查看留言.回复留言.管理留言等功能,本教程开发的是最基本的留言板,仅包含发布留言和查看留言两个功能,根据功能用boo ...

  10. Linux查看程序端口占用情况(转载)

    From:http://www.cnblogs.com/benio/archive/2010/09/15/1826728.html 今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占 ...