1.首先打开VS2010(或者其他版本),创建Windows服务项目

2.创建完成后切换到代码视图,代码中默认有OnStart和OnStop方法执行服务开启和服务停止执行的操作,下面代码是详细解释:

注意选择的是系统时间,不是winform中的时间。

using System;

using System.IO;

usingSystem.ServiceProcess;

using System.Text;

usingSystem.Timers;

namespaceTestService

{

public partial class Service1 : ServiceBase

{

public Service1()

{

InitializeComponent();

}

protected override voidOnStart(string[] args)

{

//服务开启执行代码

StartDoSomething();

}

protected override void OnStop()

{

//服务结束执行代码

}

protected override void OnPause()

{

//服务暂停执行代码

base.OnPause();

}

protected override void OnContinue()

{

//服务恢复执行代码

base.OnContinue();

}

protected override void OnShutdown()

{

//系统即将关闭执行代码

base.OnShutdown();

}

private void StartDoSomething()

{

System.Timers.Timer timer = newSystem.Timers.Timer(10000); //间隔10秒

timer.AutoReset = true;开机启动

timer.Enabled = false;  //执行一次,true时没10S执行一次。

timer.Elapsed += new ElapsedEventHandler(WriteSomething);

timer.Start();

}

private void WriteSomething(objectsource, System.Timers.ElapsedEventArgs e)

{

FileStream fs = null;

try

{

fs = new FileStream("d:/1.txt", FileMode.OpenOrCreate);

string strText = @"//实例化一个文件流--->与写入文件相关联

FileStream fs = new FileStream(sf.FileName, FileMode.Create);

//实例化一个StreamWriter-->与fs相关联

StreamWriter sw = new StreamWriter(fs);

//开始写入

sw.Write(this.textBox1.Text);

//清空缓冲区

sw.Flush();

//关闭流

sw.Close();

fs.Close();";

//获得字节数组

byte[] data = new UTF8Encoding().GetBytes(strText);

//开始写入

fs.Write(data, 0, data.Length);

//清空缓冲区、关闭流

fs.Flush();

fs.Close();

fs.Dispose();

}

catch

{

}

finally

{

if (fs != null)

{

fs.Close();

fs.Dispose();

}

}

}

}

}

3.然后切换到设计视图,右键点击下图中圈选的“添加安装程序

4.选中下图第一个控件,点击F4,右边切换到属性视图;更改属性视图中的Account属性为LocalService(本地服务)

5.选中上面第二个控件,点击F4,右边切换到属性视图。更改ServiceName为你自己喜欢的服务名称,记住不要和系统的冲突了,StartType默认为手动,你可以更改为自动

(Automatic)或禁用(Disabled)

6.编译项目,然后win+R输入cmd进入命令窗口。去对应.net版本下的目录中找到InstallUtil.exe,我项目采用的是 .net 4.0,故路径为C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319

7.InstallUtil.exe对应.net版本目录图,如下

8.然后win+R输入cmd进入命令窗口。

9.

方法删除服务:直接进行注册表编辑            打开注册表编辑器,找到下面的键值:
            HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services        一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可。

创建Windows服务简单流程的更多相关文章

  1. C#开发Windows服务详细流程

    1.Windows服务简单介绍 Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序,主要用于长时间运行的功能或者执行定时任务.一般情况下,用户不能通过用户界面来安装和启 ...

  2. 使用C#创建windows服务续之使用Topshelf优化Windows服务

    前言: 之前写了一篇“使用C#创建windows服务”,https://www.cnblogs.com/huangwei1992/p/9693167.html,然后有博友给我推荐了一个开源框架Tops ...

  3. 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq

    常量,字段,构造方法   常量 1.什么是常量 ​ 常量是值从不变化的符号,在编译之前值就必须确定.编译后,常量值会保存到程序集元数据中.所以,常量必须是编译器识别的基元类型的常量,如:Boolean ...

  4. 使用.NET Core创建Windows服务(二) - 使用Topshelf方式

    原文:Creating Windows Services In .NET Core – Part 2 – The "Topshelf" Way 作者:Dotnet Core Tut ...

  5. 玩转Windows服务系列——创建Windows服务

    创建Windows服务的项目 新建项目->C++语言->ATL->ATL项目->服务(EXE) 这样就创建了一个Windows服务项目. 生成的解决方案包含两个项目:Servi ...

  6. C# 创建Windows服务

    创建windows服务项目   2 右键点击Service1.cs,查看代码, 用于编写操作逻辑代码 3 代码中OnStart用于执行服务事件,一般采用线程方式执行方法,便于隔一段事件执行一回 END ...

  7. 使用Topshelf创建Windows服务

    概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...

  8. [转]C#创建Windows服务与安装

    本文档用于创建windows服务说明,使用vs2010系统平台 创建项目 1 创建windows服务项目 2 右键点击Service1.cs,查看代码, 用于编写操作逻辑代码 3 代码中OnStart ...

  9. [Solution] Microsoft Windows 服务(2) 使用Topshelf创建Windows服务

    除了通过.net提供的windows服务模板外,Topshelf是创建Windows服务的另一种方法. 官网教程:http://docs.topshelf-project.com/en/latest/ ...

随机推荐

  1. 初学Android开发怎么开始?

    在几个Android开发者群里面总是碰到新人提出这样的问题:"我想学Android开发,但是不知道怎么开始,不知道要学一些什么."  其实,我在最开始学习Android开发的时候也 ...

  2. i++ ++i的原子性

    http://bbs.chinaunix.net/thread-1794304-1-1.html http://blog.csdn.net/sapair/article/details/4243974 ...

  3. HDOJ(HDU) 2090 算菜价(简单水题、)

    Problem Description 妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐.现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵. Input ...

  4. Intel 英特尔

    英特尔 英特尔 基本资料   公司名称:英特尔(集成电路公司)    外文名称:Intel Corporation(Integrated Electronics Corporation)    总部地 ...

  5. CodeForces 146E - Lucky Subsequence DP+扩展欧几里德求逆元

    题意: 一个数只含有4,7就是lucky数...现在有一串长度为n的数...问这列数有多少个长度为k子串..这些子串不含两个相同的lucky数... 子串的定义..是从这列数中选出的数..只要序号不同 ...

  6. WebView中的视频全屏的相关操作

    近期工作中,基本一直在用WebView,今天就把它整理下: WebView 顾名思义,就是放一个网页,一个看起来十分简单,可是用起来不是那么简单的控件. 首先你肯定要定义,初始化一个webview,事 ...

  7. C#量转换为汉字表达

    /* 创造者:菜刀打好博客  * 创建日期: 2014年09一个月04号码  * 特征:Money类型转换  *  */ namespace Net.String.ConsoleApplication ...

  8. 触摸事件 Touch MotionEvent ACTION

    MotionEvent简介 当用户触摸屏幕时,将创建一个MontionEvent对象,MotionEvent包含了关于发生触摸的位置.时间信息,以及触摸事件的其他细节. 获取MontionEvent对 ...

  9. 编程小计——消除Graphics图像边缘颜色不纯(抗锯齿)

    在很多时候,我们都要绘制纯色的图片,而用Graphics生成的往往是不纯的,尤其是绘制文字时.比如说绘制纯红色文字,往往R达不到255. C#中默认抗锯齿,给人看起来柔和:但是我们现实中往往用到锯齿. ...

  10. mysql慢查优化总结

    1.优化sql语句结构 or改成union,使用start,limit 先只查询出所有的id,然后再排序.如果查询出所有的id仍然很慢,就要仔细考虑了. 2.添加索引 mysql每次查询只能使用一个索 ...