当前位置: 首页 > news >正文

创建Windows服务简单流程

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        一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可。

 

 

转载于:https://www.cnblogs.com/SamllBaby/p/3943953.html

相关文章:

  • Airflow成为Apache软件基金会的顶级项目
  • BZOJ 3039: 玉蟾宫
  • JSP学习笔记(一)
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 继承中代码执行顺序
  • 遍历日志文件并打印
  • Spartan6系列之器件引脚功能详述
  • 菠萝大象--sping
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 深入jQuery Mobile
  • java B2B2C源码电子商务平台 -kafka架构介绍
  • 程序员10大职业生存技巧(转载)
  • 如何打造一流的查询引擎,构建优秀的数据仓库?
  • gzip原理小透明 | Web高能短文系列
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • gitlab-ci配置详解(一)
  • Git初体验
  • iOS小技巧之UIImagePickerController实现头像选择
  • nodejs调试方法
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Service Worker
  • use Google search engine
  • Wamp集成环境 添加PHP的新版本
  • web标准化(下)
  • 从伪并行的 Python 多线程说起
  • 排序(1):冒泡排序
  • 前端
  • 前端代码风格自动化系列(二)之Commitlint
  • 小程序测试方案初探
  • 一道面试题引发的“血案”
  • 在Unity中实现一个简单的消息管理器
  • Mac 上flink的安装与启动
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • (BFS)hdoj2377-Bus Pass
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (排序详解之 堆排序)
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .net MySql
  • .NET Remoting学习笔记(三)信道
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET6实现破解Modbus poll点表配置文件
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • /etc/fstab 只读无法修改的解决办法
  • :not(:first-child)和:not(:last-child)的用法
  • @Autowired @Resource @Qualifier的区别
  • @Pointcut 使用
  • @ResponseBody